что значит не нашла или не поняла?
речь о прошлом вопросе или об этом?
Если о прошлом, то почему ответ принят, если не помогла?
Если об этом, то зачем "пробовать"? Эта настройка должна быть всегда. Её не надо "пробовать". Её надо написать один раз в файл с коннектом и забыть про неё
Почему кстати не используется настройка из прошлого вопроса?
Какой смысл задавать вопросы если ты не используешь ответы?
При правлиьной настройке, про которую я тебе писал, ошибка mysqli_num_rows() expects parameter 1 to ВООБЩЕ никогда не должна возникать
В цитате написана чушь, её переводил какой-то двоечник. В оригинале ничего этого нет, в переводе голимая отсебятина.
Повторяю последний раз, при использовании mysqli_prepare никакого экранирования не происходит.
Экранирование добавляешь ты сам, в своем коде.
постой.
я туплю.
если ромбики - то страница действительно утф, а вот текст приходит в однобайтной кодировке.
Такое ощущение что ты данные перекодируешь перед отправкой.
Да, и никаких Location: /error.php
По стандарту скрипт который завершился с оибкой, не должен никуда перенаправлять.
Если хочется показать кастомную страницу, то пишешь опять же один раз функцию set_exception_handler и внутри неё делаешь include своей страницв ошибок, а не локейшен.
про заголовки
http заголовок выставлял - выставить мало. надо проверить, выставилось ли оно в итоге.
все остальное - бессмысленная ерунда, не надо ей заниматься
в консоли браузера во вкладке сеть смотришь реальный заголовок. там будет никакой не UTF-8
про ошибку
ты сам не понимаешь что твое "Database connection error" - это полная бессмыслица? Когда у тебя происходит ошибка, база данных тебе пишет, какая именно и в чем конкретно проблема. А ты эту бесценную информацию выкидываешь на помойку.
Кроме того, писать file_put_contents('errors_log') это еще одна бессмыслица. пхп САМ умеет логировать ошибки. Надо ОДИН раз написать в коде ini_set('log_errors',1); и все ошибк будут логироваться САМИ. и выкинуть свой бессмысленный errorHandler туда же на помойку.
При подготовке запроса mysqli_prepare никакого экранирования не происходит.
Экранирование добавляет какой-то левый говнокод, который ты зачем-то добавил в свой скрипт. Надо найти этот код и выкинуть на помойку. И все сразу начнет работать нормально.
ну жди, горемычный, кто-нибудь тебе напишет, наверное