SQL вылезла ошибка для запросов.

attiz
A
Новичок
1
0
20/06/2016 в 14:06

Работаю с болльшим объемом базы SQL вылезла ошибка для запросов. Как исправить кто знает?
sql> \W
Shоw wаrnings еnаblеd.
sql> SELECT REPЕАT('А', 1ОООООО);
+-----------------------+
| REPEAT('A', 1ОООООО) |
+-----------------------+
| NULL |
+-----------------------+
1 rоw in sеt, 1 wаrning (0.00 sеc)

Warning (Code 1301): Result of repeat() was larger than max_allowed_packet (1048576) - truncated

Сообщение было отредактировано 20/06/2016 в 14:07 пользователем attiz.
Ноутбук: Lenovo QWER с Windows 10 64-bit
prohovec
P
Новичок
13
0
22/06/2016 в 23:18

Поскольку обычно в SQL-запрос подставляются какие-то переменные в PHP, то необходимо его сначала вывести. Сделать это можно, например, так:

<?php
$a = 5;
$query = "SELECT FROM `table` WHERE `id` = '$a'";
$result_set = $mysqli->query($query); // Не работает
echo $query; // Выводим запрос, который отправляется
?>
В результате, скрипт выведет такой запрос: SELECT FROM `table` WHERE `id` = '5'. Теперь чтобы найти ошибку в нём, надо зайти в phpMyAdmin, открыть базу данных, с которой происходит работа, открыть вкладку "SQL" и попытаться выполнить запрос.

И вот здесь уже ошибка будет показана, не в самой понятной форме (иногда прямо точно описывает ошибку), но она будет. Вот что написал phpMyAdmin: "#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 'FROM `table` WHERE `id` = '5' ORDER BY `table`.`id` ASC LIMIT 0, 30' at line 1". Это означает, что ошибка рядом с FROM. Присматриваемся к этому выделенному нами небольшому участку и обнаруживаем, что мы забыли поставить "*". Исправляем сразу в phpMyAdmin эту ошибку, убеждаемся, что запрос сработал и после этого идём исправлять ошибку уже в коде.

С помощью этого метода я нахожу абсолютно все ошибки в SQL-запросе, которые мне не удаётся обнаружить непосредственно при осмотре в PHP-коде.

Надеюсь, теперь и Вы сможете найти ошибку в любом SQL-запросе. если ты чайник то попробуй программу использовать https://www.repairtoolbox.com/ru/sqlserverrepair.html SQL Server Repair Toolbox она точно поможет

Ноутбук: Hp QWER с Windows Vista 64-bit
Тему читают: гостей: 3
Быстрый переход:

Полезные руководства для новичков

Наверх ↑