PHP - 包含 unicode 的 SQL 查询由于某种原因返回 NULL

标签 php mysql unicode null

我正在尝试运行此查询:

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 函数的 $wordFlower 时,结果是 Ç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/

相关文章:

php - 如何在不删除旧数据的情况下更新数据库中的数据?

php - 使用 PDO 准备语句和特定年份的占位符,我无法回应任何结果

php - 用于更新多行的 PDO 循环

Python LXML- 检查变量值是否具有非 ASCII 值的方法,如果是则返回 unicode 值

validation - 如何在输入验证中允许 UNICODE 代码点的子集?

php - 更快的图像处理。

php - 我如何从 GeoIP2 获取美国各州?

php - 'Acme' 在 Symfony2 中代表什么?

python - 使用 pygame 显示 unicode 符号

javascript - 当我选择完成的下拉选项时,必须填写评论字段