Php 如何用外语选择mysql查询?
让我用简单的方式告诉你Php 如何用外语选择mysql查询?,php,mysql,sql,phpmyadmin,mysql-error-1064,Php,Mysql,Sql,Phpmyadmin,Mysql Error 1064,让我用简单的方式告诉你 SELECT * FROM dictionary WHERE malayalam = 'ആകാശം' 此查询在phpmysql上运行良好,同时在.php页面上进行查询时不会检测到原始数据 我正在建立一本英语到马来语和马来语到英语的词典 该网站是 从mysql接收malayalam单词,在英语单词的基础上工作良好 不幸的是,接收英文单词不能正常工作:( 我对这两个函数使用相同的查询 这是用英文单词搜索的代码 if(isset($_GET['en'])) { $e
SELECT * FROM dictionary WHERE malayalam = 'ആകാശം'
此查询在phpmysql上运行良好,同时在.php页面上进行查询时不会检测到原始数据
我正在建立一本英语到马来语和马来语到英语的词典
该网站是
从mysql接收malayalam单词,在英语单词的基础上工作良好
不幸的是,接收英文单词不能正常工作:(
我对这两个函数使用相同的查询
这是用英文单词搜索的代码
if(isset($_GET['en']))
{
$english = $_GET['en'];
mysql_query ("set character_set_results='utf8'");
$result=mysql_query("SELECT * FROM en_table WHERE word = '$english' LIMIT 1");
$numrows=mysql_num_rows($result);
if($numrows!=0){
$row = mysql_fetch_array($result);
$english_id = $row['en_id'];
//select malayalam id which are matching with english id
$en_query = mysql_query("SELECT * FROM dictionary WHERE english = '$english_id'");
//$en_rows = mysql_fetch_array($en_query);
while($en_rows = mysql_fetch_array($en_query)){
$en_malayalam = $en_rows['malayalam'];
mysql_query ("set character_set_results='utf8'");
$ml_query=mysql_query("SELECT * FROM ml_table WHERE ml_id = '$en_malayalam'");
while($ml_rows = mysql_fetch_array($ml_query)){
echo $ml_rows['word'];
echo "<br />";
}
}
}else{
echo "<p>നിങ്ങള് അന്വേഷിക്കുന്ന " . $english . " എന്ന പദത്തിന്റെ അര്ഥം കണ്ടെത്താനായില്ല.</p>
<p>സാധ്യമെങ്കില്, ദയവായി നിഘണ്ടുവില് ചേര്ക്കുക.</p>";
}
if(isset($\u GET['en']))
{
$english=$_GET['en'];
mysql_查询(“set character_set_results='utf8'”);
$result=mysql_查询(“从en_表中选择*,其中word='$english'限制1”);
$numrows=mysql\u num\u行($result);
如果($numrows!=0){
$row=mysql\u fetch\u数组($result);
$english_id=$row['en_id'];
//选择与英语id匹配的马来语id
$en_query=mysql_query(“从字典中选择*,其中英语=“$english_id”);
//$en\u rows=mysql\u fetch\u数组($en\u query);
而($en\u rows=mysql\u fetch\u array($en\u query)){
$en_malayalam=$en_行['malayalam'];
mysql_查询(“set character_set_results='utf8'”);
$ml\u query=mysql\u query(“从ml\u表中选择*,其中ml\u id='$en\u malayalam'”);
而($ml\u rows=mysql\u fetch\u数组($ml\u query)){
echo$ml_行['word'];
回声“
”;
}
}
}否则{
回声“നിങ്ങള് അന്വേഷിക്കുന്ന " . $英语。”എന്ന പദത്തിന്റെ അര്ഥം കണ്ടെത്താനായില്ല.
സാധ്യമെങ്കില്, ദയവായി നിഘണ്ടുവില് ചേര്ക്കുക. “;
}
就像我用马来语搜索一样
}elseif(isset($_GET['ml'])){
$malayalam = $_GET['ml'];
mysql_query ("set character_set_results='utf8'");
$results=mysql_query("SELECT * FROM ml_table WHERE 'word'= '$malayalam' LIMIT 1");
$numrow=mysql_num_rows($results);
echo $numrow ;
//here is the problem $numrow always zero :(
if($numrow!=0){
$row = mysql_fetch_array($results);
$malayalam_id = $row['ml_id'];
//echo $malayalam_id ;
//select malayalam id which are matching with english id
$ml_query = mysql_query("SELECT * FROM dictionary WHERE malayalam = '$malayalam_id'");
//$en_rows = mysql_fetch_array($en_query);
while($ml_rows = mysql_fetch_array($ml_query)){
$ml_english = $ml_rows['malayalam'];
$ml_query=mysql_query("SELECT * FROM en_table WHERE en_id = '$ml_english'");
while($ml_rows = mysql_fetch_array($ml_query)){
//echo $ml_rows['word'];
echo "<br />";
}
}
}else{
echo "We do not have meaning of $malayalam at the moment. <br /> Could you add your word pls";
}
}else{
die("please select search value");
}
}elseif(isset($\u GET['ml'])){
$malayalam=$_GET['ml'];
mysql_查询(“set character_set_results='utf8'”);
$results=mysql_查询(“从ml_表中选择*,其中'word'='$malayalam'限制1”);
$numrow=mysql\u num\u行($results);
echo$numrow;
//问题是$numrow始终为零:(
如果($numrow!=0){
$row=mysql\u fetch\u数组($results);
$malayalam_id=$row['ml_id'];
//echo$malayalam_id;
//选择与英语id匹配的马来语id
$ml_query=mysql_query(“从字典中选择*,其中malayalam='$malayalam_id');
//$en\u rows=mysql\u fetch\u数组($en\u query);
而($ml\u rows=mysql\u fetch\u数组($ml\u query)){
$ml_english=$ml_行['malayalam'];
$ml\u query=mysql\u query(“从en\u表中选择*,其中en\u id='$ml\u english'”);
而($ml\u rows=mysql\u fetch\u数组($ml\u query)){
//echo$ml_行['word'];
回声“
”;
}
}
}否则{
echo“我们目前没有$malayalam的含义。
请您添加您的文字”;
}
}否则{
die(“请选择搜索值”);
}
我从mysql搜索过什么$numrow=mysql\u num\u行($results);numrows始终为零:(
你能帮我解决这个问题吗
我被困在这里:(
提前感谢您应该尝试以下方法之一: 1.)使用
mysql\u set\u字符集('utf8',$dbconn);
代替mysql\u query(),如中所示
2.)使用
query(“set names utf8”);
按照中的建议,在mysql\u query
之后尝试mysql\u error
并获取错误,然后修复它。@FedyaSkitsko当使用SELECT*FROM dictionary WHERE malayalam='class2'>时ആകാശം' 当我使用相同的代码phpmyadmin mysql时,结果是零,就像下面这个SELECT*FROM dictionary WHERE malayalam='10ആകാശം 结果它很好,不幸的是它没有显示结果php@FedyaSkitsko我的意思是它不可能有错误。不检测行:(您的代码极易受到SQL注入攻击。在未验证和转义的情况下,切勿使用用户提供的inout。@GordonM实际上我的问题很简单。我刚刚编辑了顶部的问题。我尝试了很多方法,但不幸失败:(我两个都试过了,但是韩语输出为ud638\ud638\ud638\ud558\ud558\ud558\ud558\ud558。还有其他解决方案吗?@coolcool1994看这个,我从mysql服务器本身添加了韩语。所以我可以从mysql服务器上看到韩语存在。当我运行php文件显示mysql数据库中的所有元素时,从TableName中选择*n返回,因为ud638\ud638\ud638\ud558\ud558\ud558\ud558将您的1)2)添加到我的php文件并不能解决返回韩语的问题。我从web调用我的php文件,因为这是第一种,也是最好的测试方法。韩语不会返回