我正在尝试运行此查询:
SELECT trans FROM `dictionary` WHERE `word` LIKE 'Çiçek'
像这样(相关代码):
function gettranslation($word){
return $this->query("SELECT trans FROM `dictionary` WHERE `word` LIKE '$word'");
}
function query($query){
$result=mysqli_query($this->conn, "set character_set_results='utf8'");
$result=mysqli_query($this->conn, $query);
return $row = mysqli_fetch_row($result)[0];
}
我的 mySQL 表是这样制作的:
Word | Trans
-------------
Flower| Çiçek
-------------
Çiçek | Flower
当我传递给 gettranslation
函数的 $word
是 Flower
时,结果是 Çiçek
。但是,当我执行相反操作时,结果为 NULL
。
此外,如果我对它执行 var_dump
,我什么也得不到。甚至不是空数组。
奇怪的是,当我在 PHPmyAdmin 中运行相同的查询时,它运行良好。
帮忙吗?
最佳答案
据我所知,mysqli_query($con, "SET NAMES 'utf8'");
是必需的,如下所示:
function gettranslation($word){
return $this->query("SELECT trans FROM `dictionary` WHERE `word` LIKE '$word'");
}
function query($query){
//$result=mysqli_query($this->conn, "set character_set_results='utf8'");
mysqli_query($con, "SET NAMES 'utf8'");
$result=mysqli_query($this->conn, $query);
return $row = mysqli_fetch_row($result)[0];
}
关于PHP - 包含 unicode 的 SQL 查询由于某种原因返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30811018/