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文件,因为这是第一种,也是最好的测试方法。韩语不会返回