Данные выводятся два раза, значит после первого прохода не удаляются, остаются на своих местах, как мне и нужно. Выходит, первый тест я сделал неправильно. Моя ошибка, прошу прощения за дезинформацию.
Спасибо за помощь, T1grOK.
Стесняюсь спросить, а зачем вы отключаете MySQL сервер?
Как вариант, чтобы было хоть немного понятно, пишите текст ошибки на английском.
Тестирую я так Ну, а вдруг на хостинге база станет недоступна, как я узнаю, что проблема в этом, если вместо текста ошибки идут ромбики с вопросительными знаками?
Вот, пожалуйста, текст ошибки:
Это понятно, спасибо.
Но для меня всё-таки важно избежать дополнительных затрат памяти и процессорного времени. Поэтому вопрос остаётся в силе: Есть ли способ напрямую работать с mysqli_result, не нарушая его целостность?
Однако, функция fetch_assoc() удаляет из результата каждую новую полученную строку. В описании функции так и написано: "Извлекает результирующий ряд..." а мне нужно, чтобы он не извлекался, а оставлялся на месте. То есть, нужно оставить $chapters в неизменном виде для дальнейшей обработки.
Вопрос: Как организовать перебор результата, не извлекая (не удаляя) из него данные?
А, ну то есть, ошибка редко возникает, понятно. Тогда навскидку, чтобы отловить её, я бы сделал лог двух переменных (до конкатенации и после). Перед каждой записью в БД записывать куда-нибудь в файл. Или можно прямо в базу данных, в таблице сделать дополнительное поле, где будет первая половинка, которая до конкатенации. Тогда можно будет заметить, когда именно возникает ошибка, а также станет ясно, в конкатенации эта ошибка или в базе данных.
Всем привет.
Функция $mysqli->connect_error возвращает текст ошибки в нужной мне кодировке (utf8) только если сервер MySQL работает. Если же сервер MySQL выключен, то текст ошибки выходит в неправильной кодировке (ромбики с вопросительными знаками).
Подскажите, пожалуйста:
1) Почему так происходит?
2) Как задать нужную кодировку для текста ошибки?