Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Странная ситуация с SQl-запросом в PHP. Прямо МАГИЯ!!! Помогите))))

68K
26 ноября 2012 года
BlGhost
24 / / 25.11.2012
Вот фрагмент кода:

 
Код:
$updateSQL = "UPDATE uspehi SET Ocenka=".$_POST['ocenka'].
            " WHERE StudId=".$_POST['MM_Student_id']." AND PredmetId=".$_POST['MM_Predmet_id'];
             //echo var_dump($updateSQL);
             mysql_select_db($database_students_BD, $students_BD);
             $Result = mysql_query($updateSQL, $students_BD);// or die(mysql_error());
Прикол в том, что при срабатывании этого кода выводится ошибка:

 
Код:
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
Но если я "раскоментирую" строчку //echo var_dump($updateSQL); , то запрос срабатывает и данные в таблице обновляются!!! Естественно, что на страницу выводится и содержимое $updateSQL и Warning: Cannot modify header information - headers already sent by (output started at Z:\home\student.ru\www\tabel.php:20) in Z:\home\student.ru\www\tabel.php on line 25. Но запрос то все равно срабатывает!!!!!!!!!!!!!!
Если я вместо var_dump($updateSQL) вывожу просто, например echo ' '; или echo 'бла бла бла бла';, то опять выскакивает эта самая ошибка и запрос не срабатывает. Запрос срабатывает только со строчкой echo var_dump($updateSQL)


Это какой-то бред!!! Кстати, заодно посмотрите, что может быть неправильного в запросе, хотя вроде все ок!

Вот на всякий случай содержимое var_dump($updateSQL):

Цитата:
string(59) "UPDATE uspehi SET Ocenka=4 WHERE StudId=21 AND PredmetId=36"

8
26 ноября 2012 года
mfender
3.5K / / 15.06.2005
Какой тип у поля Ocenka?
414
26 ноября 2012 года
CassandraDied
763 / / 24.05.2012
Цитата: mfender
Какой тип у поля Ocenka?


MySQL не может в приведение типов?

8
26 ноября 2012 года
mfender
3.5K / / 15.06.2005
Никто не может. Во-первых, из PHP может прийти нетримленная строка в $_POST['ocenka'] и в кондиции $_POST['MM_Student_id']. А мне представляется, что там некий INTEGER. Хорошо если так. А если там что-то типа 1,56, который MySQL вообще не поймёт?

UPD. В $_POST вообще всякий элемент - строка. И каждый элемент массива заканчивается на #10#13.
414
27 ноября 2012 года
CassandraDied
763 / / 24.05.2012
Цитата: mfender
Никто не может.


oracle implicit conversation.

1
27 ноября 2012 года
kot_
7.3K / / 20.01.2000
Цитата: mfender
Никто не может.


херня.
из приведенного фрагмента понять что и где вызывается и объявляется не возможно.
все остальное - херня.
Вероятно данный фрагмент кода либо вызывается овер9000 раз либо ТС просто и банально объявил кучу пременных глобальной области видимости. Гадать бесполезно.

8
27 ноября 2012 года
mfender
3.5K / / 15.06.2005
Не, ну так то я тоже только предполагаю по написаному синопсису. Тоже ведь не маэстро видеть сквозь время и пространство.
1
27 ноября 2012 года
kot_
7.3K / / 20.01.2000
тоже туплю
причина банальна - метод вызывался более чем АДЫН раз. Симптомы схожи.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог