У меня проблема с MySqli, и я буду признателен за вашу помощь или комментарии.
Я пытаюсь использовать Set_charset («utf8») в базе данных MySQL, работающей на веб-сервере Resin. Я посмотрел и попробовал несколько вариантов, найденных здесь в других сообщениях, таких как:
$conn = new mysqli($servername, $user, $password, $dbname);
$conn->query('SET NAMES utf8');
или же
$conn->set_charset("utf8");
Эти команды работают на локальном сервере Apache, работающем под управлением mysql-5.6.20 и php 5.4.31.
Но они не работают на веб-сервере Resin с MySQl 5.6 и Php 5.5. Я сделал разработку на локальном сервере Apache (uAMP), а затем скопировал файл php на веб-сервер Resin …
Я нашел этот код в WWW3S, чтобы установить и проверить кодировку:
<?php
$mysqli = new mysqli("localhost", "root", "root", "bdtest");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
printf("Initial character set: %s\n", $mysqli->character_set_name());
/* change character set to utf8 */
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
exit();
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
}
$mysqli->close();
?>
Я получаю правильный результат, когда запускаю его на локальном сервере Apache:
Начальный набор символов: latin1 Текущий набор символов: utf8
Но на сервере Resin я получаю это:
Исходный набор символов: latin1 Ошибка загрузки набора символов utf8:
Так что, я думаю, что-то с set_charset неправильно интерпретируется в Resin. Но я понятия не имею, почему (Если бы я мог, я бы просто уничтожил смолу и сменил бы на Apache … но я не могу).
Любая помощь, идеи, комментарии будут с благодарностью. Спасибо!
João
Задача ещё не решена.
Других решений пока нет …