SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.10.2011 11:58:40

KeSSedy
Участник
Откуда: г. Киев
Зарегистрирован: 11.10.2011
Сообщений: 3

Не могу найти ошибку

Ошибка:
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 '' at line 1
Запрос:
'UPDATE `classes` SET `id_floor`=' . $id_floor . ', `name`=' . $name . ', `img`=' . $img . ', `computers`=' . $computers . ', `projector`=' . $projector . ', `network`=' . $network . ', `info`=' . $info . ' WHERE `id`=' . $id . ' '

Неактивен

 

#2 11.10.2011 12:41:14

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу найти ошибку

Напишите сюда получившийся запрос полностью - то есть где вместо переменных php уже подставлены значения.
Есть подозрение, что какая-то из переменных пустая.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 11.10.2011 13:44:03

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Не могу найти ошибку

Намутили с кавычками
Текстовые значения нужно в кавычках передавать.

'UPDATE `classes` SET `id_floor`=' . $id_floor . ', `name`="' . $name . '", `img`="' . $img . '", `computers`="' . $computers . '", `projector`="' . $projector . '", `network`="' . $network . '", `info`="' . $info . '" WHERE `id`=' . $id . ';

Отредактированно evgeny (11.10.2011 13:44:31)

Неактивен

 

#4 11.10.2011 14:16:31

KeSSedy
Участник
Откуда: г. Киев
Зарегистрирован: 11.10.2011
Сообщений: 3

Re: Не могу найти ошибку

deadka написал:

Напишите сюда получившийся запрос полностью - то есть где вместо переменных php уже подставлены значения.
Есть подозрение, что какая-то из переменных пустая.

переделал как писал evgeny, ошибка осталась. а полностью запрос так:
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 'Іван'', `img`='1', `computers`=''10'', `projector`=''0'', `network`=''не ' at line 1
То есть как я понял у меня не задаются 2 переменные $id_floor и $info так как в ошибке их нету...

Неактивен

 

#5 11.10.2011 14:24:11

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу найти ошибку

Приведите не ошибку, а запрос. Здесь показана лишь его часть, а нужно целиком посмотреть.
Но даже глядя на эту часть видно, что Ivan обернут слева одной кавычкой, а справа двумя, 10 обернуто зачем-то двумя кавычками сразу по обе стороны, с нулем та же история. что касается network - так так вовсе значение отсутствует.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#6 11.10.2011 14:59:34

KeSSedy
Участник
Откуда: г. Киев
Зарегистрирован: 11.10.2011
Сообщений: 3

Re: Не могу найти ошибку

deadka написал:

Приведите не ошибку, а запрос. Здесь показана лишь его часть, а нужно целиком посмотреть.
Но даже глядя на эту часть видно, что Ivan обернут слева одной кавычкой, а справа двумя, 10 обернуто зачем-то двумя кавычками сразу по обе стороны, с нулем та же история. что касается network - так так вовсе значение отсутствует.

Ну там разница с кавычками из-за того, что я добавлял двойные, как советовал evgeny.
Я убрал и получилось так: ...near 'Іван' . ', `img`=' . 1 . ', `computers`=' . '10' . ', `projector`=' . '1' . ' at line 1
то есть уже не летит 3 переменных id_floor, network, info.  Переменные network и info текстовые.
а как мне посмотреть целиком? я копирую только то, что мне выдает браузер.

а если не ошибку, то вот запрос целиком:
"UPDATE `classes` SET `id_floor`=' . $id_floor . ', `name`=' . $name . ', `img`=' . $img . ', `computers`=' . $computers . ', `projector`=' . $projector . ', `network`=' . $network . ', `info`=' . $info . ' WHERE `id`= '. $id . '"

Отредактированно KeSSedy (11.10.2011 15:01:26)

Неактивен

 

#7 11.10.2011 15:03:08

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу найти ошибку

Двойных кавычек не надо - чего ради? В Вашем коде поставьте вывод запроса на экран - если не понимаете как - то приведите соответствующий кусок кода. Что касается запроса, то оно должно выглядеть примерно так (привожу часть):
`img`=1, `computers`=10 - это для целочисленных переменных.
Текстовые же должны быть обернуты в кавычки.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#8 11.10.2011 17:53:44

Александр Трофимов
Завсегдатай
Откуда: Юрмала
Зарегистрирован: 19.09.2011
Сообщений: 95

Re: Не могу найти ошибку

Друг, ты тупишь!

"UPDATE `classes` SET `id_floor` = '$id_floor', `name` = '$name', `img` = '$img', `computers` = '$computers', `projector` = '$projector', `network` = '$network', `info` = '$info' WHERE `id` = '$id'"


Тебя попросили привести запрос целиком. Это значит — без переменных, готовый запрос, а ты приводишь код PHP.
Двойные кавычки — это не две друг за другом следующие одинарные кавычки ', это двойные кавычки ". http://ru.wikipedia.org/wiki/%D0%9A%D0% … 0%BA%D0%B8

Все текстовые значения такие как $name = 'mama', в готовом запросе должны быть заключены в кавычки. Если твой запрос как строка в пхп заключен в одинарные кавычки, то текстовые значения ты заключаешь в двойные. Если запрос как строка заключен в двойные кавычки, то текстовые значения можно заключить в одинарные.
Пример:
1)
$string = 'UPDATE table SET name="'.$name.'"';

В результате получаем
UPDATE table SET name="mama"

2)
$string = "UPDATE table SET name='$name'";

В результате получаем
UPDATE table SET name='mama'


Такие вещи пхп-программист должен понимать на подсознательном уровне.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson