Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ': htmlspecialchars() expects parameter 1 to be string, array given in D:\DOWNLO' at line 6
Действие происходит на localhost / Openserver / PHP_7.3 / My SQL-5.7, где я только учусь работать с MySQL. И в этом сообщении на сайте, и при обсуждении в Интернете похожих ошибок советуют смотреть мануал. Я честно прочитал в мануале про функцию htmlspecialchars() и соответствующий синтакс. И чо? Никаких понятных мне инструкций не нашел.
Как решить проблему-то? Что надо делать конкретно? Что куда вставить или где искать ошибку?
Мой уровень: могу открыть php-MyAdmin и создать /удалить базу данных /таблицу, вставить простейший запрос и т.п.
Неактивен
https://sqlinfo.ru/articles/info/15.html
Это готовый сайт или вы сами пишите скрипты php?
Вы можете привести целиком запрос, который приводит к ошибке?
Неактивен
Спасибо за оперативный ответ! Я вышел ваш сайт именно через эту статью в Гугле - но, к сожалению, не понял из нее, что же конкретно мне надо делать.
Я установил на жесткий диск Joomla и приложение-магазин, изучаю сайтостроительство и администрирование (да, карантин . Ошибка выдается только при генерации главной страницы, а панель администратора работает нормально. Перед появлением ошибки ничего не обновлял и не устанавливал, но сканировал весь жесткий диск на исправление ошибок - т.е. скорее всего, утилита компа где-то перезаписала в файлах сайта символы, которые сочла поврежденными.
У меня есть бэкап сайта, но я хочу сам разобраться, как исправить ошибку. Собственно, я даже не прошу сделать это за меня, а подкинуть ключевых слов, что-ли, где и что искать. При этом уровень знания MySQL почти нулевой. Месяц назад я вообще не подозревал о его существовании
Вот что я не нашел. Как выглядит запрос к MySQL для генерации главной страницы? Наверное, если его воспроизвести в php-MyAdmin, то MySQL ответит более развернуто и укажет адрес файла и номер строки с неправильными символами? Или нет?
Или же ошибка в самой базе данных, и нужно поменять параметры бд или таблицы? А как узнать - какой? MySQL пишет, что в параметре 1 нужна строка, а там "множество" (еще бы разобраться, что бы это значило
Заранее благодарен за подсказки!
Неактивен
Вот что ночью написали на forums.mysql*com: "htmlspecialchars () expects parameter 1 to be string, array given" looks like a PHP error message that you've somehow sent to MySQL"
То есть надо искать на localhost файл php с ошибкой? или даже не только php?
Неактивен
htmlspecialchars() expects parameter 1 to be string, array given in D:\DOWNLO... это действительно ошибка php, которая почему-то отправляется в виде sql запроса.
Начать нужно с того, что получить полный текст sql запроса. Там скорее всего будет имя файла и строка в php скрипте, где произошла проблема с htmlspecialchars().
Для этого включите общий лог запросов mysql (general query log). Зайдите на сайт, чтобы произошла ошибка, и пишите сюда, что конкретно будет в логе.
Неактивен
Отлично, спасибо! Получил лог - уже есть некое продвижение!
Информация для таких же несведущих, как я:
1. Таблица "general_log" находится в базе данных mysql, по умолчанию она выключена, хотя у меня почему-то оказалась включена.
Как включить:
SET global general_log = 1;
SET global log_output = 'table';
Выключить обратно (видимо, замедляет работу sql):
SET global general_log = 0;
2. Получить лог
SELECT
*
FROM
mysql.general_log;
Далее выбрать опцию "экспорт" и формат, я сохранил в *txt
Вот что получилось...
Отредактированно Bambook (24.05.2020 09:40:29)
Неактивен
Ввел в заблуждение. Оказывается общий лог запросов не пишет синтаксически неверные запросы.
Что в логе ошибок php?
Неактивен
Не без труда нашел, как включить запись логов ошибок PHP (нужно вставить спец_код в файл "php.ini").
В итоге в файле "PHP_7.3_error.log" написано:
PHP Notice: Undefined property: stdClass::$global_border_width in D:\DOWNLOADS\OSPanel\domains\lannashop\components\com_sppagebuilder\layouts\addon\css.php on line 79
Вот строки 76-83 кода этого файла, а строка 79: if (is_object($addon->settings->global_border_width)) {
// Border
if(isset($addon->settings->global_user_border) && $addon->settings->global_user_border) {
if (is_object($addon->settings->global_border_width))
$addon_css .= isset($addon->settings->global_border_width->md) && $addon->settings->global_border_width->md ? "border-width: " . $addon->settings->global_border_width->md . "px;\n" : "";
} else {
$addon_css .= isset($addon->settings->global_border_width) && $addon->settings->global_border_width ? "border-width: " . $addon->settings->global_border_width . "px;\n" : "";
}
Неактивен
Это совсем другая ошибка - несуществующее свойство объекта
Исследуйте, что хранится в $addon, можно ли у него вызвать global_user_border.
Но эта ошибка не должна приводить к проблеме из первого поста. Ищите где в коде htmlspecialchars(), что ей передается и почему это не строка.
Неактивен
vasya написал:
Это совсем другая ошибка - несуществующее свойство объекта
Исследуйте, что хранится в $addon, можно ли у него вызвать global_user_border.
Но эта ошибка не должна приводить к проблеме из первого поста. Ищите где в коде htmlspecialchars(), что ей передается и почему это не строка.
Спасибо. Будем искать!
Неактивен
Страниц: 1