Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2017, 10:00   #1
Pro100Bogdan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 12
По умолчанию MySQL A fatal MySQL error occured - PHP БД

Добрый день !
Столкнулся со следующей проблемой: при вводе в определённое поле а именно в "edit_value" значения "no", вызывается следующая ошибка "A fatal MySQL error occured. Query: Error1064) 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 'Where id=625' at line 1"
Мучаюсь уже второй час но не как не могу понять саму причину вызывающую данную ошибку. Проблема появилась недавно, до этого все работало без проблем, в скрипт не вносились изменения, что ещё больше озадачивает.
Сам скрипт можно увидеть в прикрепленном файле edit.php
Подскажите пожалуйста, может кто то увидит в чем может быть причина происходящего ?
Заранее большое спасибо !
Вложения
Тип файла: rar edit.rar (694 байт, 14 просмотров)
Pro100Bogdan вне форума Ответить с цитированием
Старый 20.09.2017, 10:41   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну, судя по всему, ошибка возникает в этих строчках кода:
Код:
			if($_POST['edit_value'] === '0' or $_POST['edit_value']== 'no'){
				$sql= "UPDATE `date` SET `Cash returned to` = ".$returned." Where id=".$editid; 
				mysql_query($sql) or die("<b>A fatal MySQL error occured</b>.\n<br />Query: " . $query . "<br />\nError: (" . mysql_errno() . ") " . mysql_error());
			}
поле $_POST['returned'] точно корректно заполнено?

попробуйте в сообщение об ошибке вывести сам запрос (переменную $sql), посмотрите, что не так с запросом.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.09.2017, 10:51   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Начнем с того, что вы в сообщении об ошибке выводите $query - переменная не определена. Надо выводить переменную $sql, которая и содержит текст запроса:

Код:
$sql= "UPDATE `date` SET `Cash returned to` = ".$returned." Where id=".$editid;
Возникает вопрос, чему равно значение переменной $returned? Она определена выше:

Код:
if($_POST['returned'])
			$returned = (int)htmlspecialchars(strip_tags($_POST['returned']));
Получается, что если $_POST['returned'] по какой-то причине не передан, то значение $returned не определено или пусто. При подставлении пустого значения в запрос получается синтаксически неверный запрос, типа такого:

UPDATE `date` SET `Cash returned to` = Where id=625

Естественно, поругается на Where.

В общем, выведите значение $sql, там посмотрим.
Arigato вне форума Ответить с цитированием
Старый 20.09.2017, 12:12   #4
Pro100Bogdan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 12
По умолчанию

Передаю в $returned значение "no", также вывел в ошибку переменную $sql и получился вот такой результат как на прикрепленном файле.
Может есть ещё какие то советы ?
Изображения
Тип файла: png error.png (18.5 Кб, 126 просмотров)
Pro100Bogdan вне форума Ответить с цитированием
Старый 20.09.2017, 12:28   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Цитата:
Сообщение от Pro100Bogdan Посмотреть сообщение
Передаю в $returned значение "no", также вывел в ошибку переменную $sql
Нет там никакого "no", вы бы хотя бы сами прочитали, что получилось в $sql. О пустом $returned я вам выше и написал. В скрипте необходимо проверять, что если параметр не передан, то не выполнять sql-запрос. Но сейчас не это главное, корень ошибки кроется не в данном скрипте, а там, где формируются отправляемые данные (где у вас форма).
Arigato вне форума Ответить с цитированием
Старый 20.09.2017, 12:50   #6
Pro100Bogdan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Нет там никакого "no", вы бы хотя бы сами прочитали, что получилось в $sql. О пустом $returned я вам выше и написал. В скрипте необходимо проверять, что если параметр не передан, то не выполнять sql-запрос. Но сейчас не это главное, корень ошибки кроется не в данном скрипте, а там, где формируются отправляемые данные (где у вас форма).
Дело в том, что это все работало, ничего не менялось, и просто начала появляться эта ошибка, грешу на устаренее используемых мной методов в данных скриптах, но если вам не сложно и вы их видите, ткните мне пожалуйста пальцем.
Также прилагаю скрипт, в котором формируются отправляемые данные, под названием table.rar
Вложения
Тип файла: rar table.rar (2.3 Кб, 13 просмотров)
Pro100Bogdan вне форума Ответить с цитированием
Старый 20.09.2017, 13:15   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
При подставлении пустого значения в запрос получается синтаксически неверный запрос, типа такого:
UPDATE `date` SET `Cash returned to` = Where id=625
Гениально. идеальное попадание!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерпретатор РНР. PHP Fatal error Pcrepair PHP 23 10.11.2016 19:10
Игра Скачки! Выдает ошибку: [Linker Fatal Error] Fatal: Expected a file name: SEV7 Общие вопросы C/C++ 0 19.05.2012 00:56
Windows+Apache+PHP+MySQL: не работает расширение MySQL. Пепел Феникса Софт 10 15.04.2012 14:10
[Linker Fatal Error] Fatal: Unable to open file 'CXGRIDVCLC6.LIB' Donn Общие вопросы C/C++ 0 16.04.2009 15:25
[Linker Fatal Error] Fatal: Expected a file name: oseni Общие вопросы C/C++ 4 02.01.2009 16:36