首页 > 解决方案 > MySQL + PHP:如何处理存储过程参数中的变音符号?

问题描述

我在 PHP 中有这个功能:

public function getData($data) {
    echo $data; //param still right for example: Schärding
    $result = mysqli_query($this->conn, "CALL sp_kampagne_findcurrent ('".$data."')") or die(mysqli_error($this->conn));
    @mysqli_next_result($this->conn);
    return $result;
}

如您所见,我将参数传递$data给我的 SP,然后返回结果。

这里的问题是,如果我传递没有变音符号(ä,ö,ü)的单词,它会完美运行,但如果我使用像“Schärding”这样的单词,它会返回零数据,即使 MySQL 中存储有数据。

奇怪的是,如果我直接在其中调用我的 SP,PHPmyAdmin 与“Schärding”这个词一起使用。所以错误必须在PHP客户端。

如果您需要更多信息,请说出来我会尝试添加更多信息。

标签: phpmysqlencode

解决方案


你应该尝试添加

mysqli_set_charset到您的代码,一旦建立了 mysqli 连接

例如:

mysqli_set_charset($this->conn,"utf8");

当然更新编码,使其符合您的需要


推荐阅读