Неверное строковое значение: '\ x99 \ xC1 \ xE8 \ x89u \ - PullRequest
0 голосов
/ 18 сентября 2018

Использование подготовленного оператора в PHP ...

$sql = "insert into `customers` (`name`, `email`) values (?, AES_ENCRYPT(?,?))";
$mysqli = $oDB->connect(); // see below for $oDB class and connect function
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("sss", $name, $email, $key);
$stmt->execute();

... Я пытаюсь зашифровать электронную почту, чтобы она хранилась немного более надежно (или, по крайней мере, для выгрузки содержимогоcustomers таблица не отображает электронное письмо в виде обычного текста)

($key - это случайно сгенерированная строка из 32 символов, если это уместно)

База данных и таблицы используют utf8mb4_unicode_520_ci кодирование.И я попытался установить кодировку соединения перед выполнением оператора ...

class oDB {
    public function connect() {
        $mysqli = new mysqli($this->db['host'], $this->db['user'], $this->db['pass'], $this->db['name']);
        $mysqli->set_charset("utf8mb4");
        return $mysqli;
};

После выполнения SQL программа возвращает ошибку Incorrect string value: '\x99\xC1\xE8\x89u\'

Поиск этого кода, я получаю решенияо настройке charset на соединении mysqli перед отправкой sql.Но почему-то это не сработает.

Есть идеи, как устранить ошибку incorrect string value?

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