MySQL + PHP:如何在存储过程参数中处理Umlauts?

时间:2018-09-03 07:13:09

标签: php mysql encode

我在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,然后返回结果。

这里的问题是,如果我不使用单词 Umlauts(ä,ö,ü)就能正常工作,但是如果我使用“Schärding”之类的单词,即使存在数据存储在MySQL中。

奇怪的是,如果我在PHPmyAdmin中直接调用我的SP ,它可以与单词“Schärding”一起使用。因此该错误必须在PHP客户端上。

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

1 个答案:

答案 0 :(得分:0)

您应该尝试添加

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

例如:

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

当然会更新编码,使其适合您的需求