Использование подготовленного оператора в 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
?