Я пытаюсь создать несколько страниц, используя PHP / MySQL.
Моя таблица базы данных установлена на utf8_general_ci
, как и столбцы таблицы.Если я использую phpmyadmin и вручную вставляю страницу, я могу ввести все нужные мне €, и они будут вставлены как €.Я тоже могу это прекрасно отобразить.
Однако, когда я пытаюсь вставить страницу, используя mysqli, € будет конвертирован в «1006 *
». Я не делаю никаких преобразований.Если я отображаю поля столбца страницы непосредственно перед тем, как собираюсь вставить страницу, он все равно правильно отображает €.
Код:
$connection = new mysqli('localhost', 'root', '', 'some_db');
$query = 'INSERT INTO page (ID, title, content) VALUES (?, ?, ?)';
$params = array('iss', 'NULL', 'test title', '€ some content');
$stmt = $connection->prepare($query);
call_user_func_array(array($stmt, 'bind_param'), by_ref($params));
$stmt->execute();
Функция by_ref
дает только ссылку, ничего больше.Все работает хорошо, за исключением того, что у меня болит голова, когда он неправильно вставляет €.Может быть, это не bind_param, а что-то еще.Однако я хотел бы знать ответ!
Обновление:
Благодаря Digital Precision я понял, что должен убедиться, что соединение будет использовать utf8».Однако мне нужно установить его только при использовании INSERT или UPDATE, поскольку SELECT действительно возвращает результаты в utf8.Надеюсь, это кому-нибудь поможет