MySQL + PHP: как обрабатывать умлауты в параметрах хранимых процедур? - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть эта функция в 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.

Странная вещь, если я называю мой SP напрямую в PHPmyAdmin , он работает со словом "Schärding". Так что ошибка должна быть на стороне клиента PHP.

Если вам нужна дополнительная информация, просто скажите, что я попробую добавить больше.

1 Ответ

0 голосов
/ 03 сентября 2018

Вы должны попробовать добавить

mysqli_set_charset к вашему коду, как только MySQL соединение установлено

Например:

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

Конечно, обновляя кодировку, чтобы она соответствовала тому, что вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...