Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не выполняется SQL запрос из PHP скрипта
 
 автор: ddi   (29.04.2008 в 11:42)   письмо автору
 
 

Здравствуйте, есть запрос такого вида

"SELECT SQL_NO_CACHE user_id, Password, UsLogin FROM User WHERE user_id='".$this->AUTH_USER."' AND Password=PASSWORD('".$this->AUTH_PW."')" 

Дело в том, что этот запрос всегда работал правильно, но настал день, и этот код перестал выполняться из PHP сценария, но при этом выполняется из любого клиента MySQL. Подскажите, в чем проблема?

   
 
 автор: Axxil   (29.04.2008 в 12:37)   письмо автору
 
   для: ddi   (29.04.2008 в 11:42)
 

А в какой форме он перестал выполняться? Какая ошибка вылазит?
подозреваю что причина в переменных $this->AUTH_USER или $this->AUTH_PW

   
 
 автор: ddi   (29.04.2008 в 12:51)   письмо автору
 
   для: Axxil   (29.04.2008 в 12:37)
 

В преобразованном виде sql-запрос может выглядеть так <br>

SELECT SQL_NO_CACHE user_id,Password, UsLogin FROM User WHERE user_id='smoky' AND Password=PASSWORD('222b5j6')

По началу, я думал, что все дело в кэшировании MySQL-сервера, но по моему нет.

   
 
 автор: ddi   (29.04.2008 в 15:10)   письмо автору
 
   для: ddi   (29.04.2008 в 12:51)
 

Народ, помогите с проблемой PLEASE!!!

   
 
 автор: KPETuH   (29.04.2008 в 15:24)   письмо автору
 
   для: ddi   (29.04.2008 в 12:51)
 

>В преобразованном виде sql-запрос может выглядеть так <br>
>

>SELECT SQL_NO_CACHE user_id,Password, UsLogin FROM User WHERE user_id='smoky' AND Password=PASSWORD('222b5j6')
>

>По началу, я думал, что все дело в кэшировании MySQL-сервера, но по моему нет.
а вы уверены что...

WHERE user_id='smoky' 
помоему должно быть
WHERE UsLogin='smoky' 

   
 
 автор: ddi   (29.04.2008 в 15:35)   письмо автору
 
   для: KPETuH   (29.04.2008 в 15:24)
 

>а вы уверены что...
>
>
WHERE user_id='smoky' 
помоему должно быть
WHERE UsLogin='smoky' 


Ошибка не в SQL-запросе, дело в том, что в ходе выполнения скрипта этот запрос вообще не выполняется, как-то это очень странно.

   
 
 автор: Киналь   (29.04.2008 в 16:10)   письмо автору
 
   для: ddi   (29.04.2008 в 15:35)
 

А если вместо этого запроса вписать что-нбудь примитвное, типа

SELECT NOW()

?

   
 
 автор: ddi   (29.04.2008 в 16:52)   письмо автору
 
   для: Киналь   (29.04.2008 в 16:10)
 

>А если вместо этого запроса вписать что-нбудь примитвное, типа
>

>SELECT NOW()
>


SELECT NOW() -- проходит.
Мой запрос не проходит!!!
Т.е. в моём php-коде это выглядит так

mysql_query("SELECT NOW()");

mysql_query("SELECT SQL_NO_CACHE user_id,Password, UsLogin FROM User WHERE user_id='smoky' AND Password=PASSWORD('fgt343ghb3')");

   
 
 автор: AcidTrash   (29.04.2008 в 17:14)   письмо автору
 
   для: ddi   (29.04.2008 в 16:52)
 

и какой тип поля user_id?

   
 
 автор: ddi   (29.04.2008 в 17:21)   письмо автору
 
   для: AcidTrash   (29.04.2008 в 17:14)
 

>и какой тип поля user_id?

Тип поля varchar(250).

   
 
 автор: AcidTrash   (29.04.2008 в 17:28)   письмо автору
 
   для: ddi   (29.04.2008 в 17:21)
 

Из вашего запроса не могу понять, что записано в user_id и UsLogin ?

   
 
 автор: ddi   (29.04.2008 в 17:33)   письмо автору
 
   для: AcidTrash   (29.04.2008 в 17:28)
 

>Из вашего запроса не могу понять, что записано в user_id и UsLogin ?

В user_id записан логин пользователя, а UsLogin - это логическое значение.
Значение UsLogin записывается в Ссесию во время авторизации, если у клиента отключены cookie.

Дело в том, что этот SQL я запускаю в MySQL Query Browser и сервер, как полагается, возвращает результат. А из php-скрипта результат не возвращается.
Result set пустой, хотя такого быть не дожно!

   
 
 автор: KPETuH   (29.04.2008 в 20:59)   письмо автору
 
   для: ddi   (29.04.2008 в 17:33)
 

если проходит select now();

значит проблема в запросе скорее всего в том месте где у вас подставляются данные в запрос... попробуйте запрос с преустановленными значениями и если пройдет то проверяйте ваши данные поступающие в запрос...

   
 
 автор: AcidTrash   (29.04.2008 в 21:50)   письмо автору
 
   для: KPETuH   (29.04.2008 в 20:59)
 

>скорее всего в том месте где у вас подставляются данные в запрос


Да, что странно. Автор использует уже конкретные данные, которые есть в БД
user_id='smoky' AND Password=PASSWORD('fgt343ghb3')");
Но интересно, по словам автора, что все работало, а теперь нет.

P.S. На мой взгляд запрос логичен, не понятно почему не работает, может быть вы что-то изменили в скрипте при выводе.

   
 
 автор: ddi   (30.04.2008 в 09:25)   письмо автору
 
   для: AcidTrash   (29.04.2008 в 21:50)
 

>Но интересно, по словам автора, что все работало, а теперь нет.
>
>P.S. На мой взгляд запрос логичен, не понятно почему не работает, может быть вы что-то изменили в скрипте при выводе.

У меня была как-то раз такая же проблема, только не при извлечении данных, а при записи. (UPDATE). До поры, до времени работало, а потом раз, и перестало. Тоже долго не мог понять, почему данные перестали обновлятся и пришел к выводу, что MySQL просто закэшировал сам запрос (если это возможно?). Решил на входе кодировать данные при помощи URLENCODE() -- помогло, данные стали обновляться как часы. Но в данном случае кодировать входящие значения нельзя.

   
 
 автор: KPETuH   (30.04.2008 в 10:15)   письмо автору
 
   для: ddi   (30.04.2008 в 09:25)
 

структуру таблицы покажите

   
 
 автор: ddi   (30.04.2008 в 10:47)   письмо автору
 
   для: KPETuH   (30.04.2008 в 10:15)
 


CREATE TABLE `User` (
id int(11) NOT NULL auto_increment,
Password varchar(45) NOT NULL default '',
Language varchar(255) NOT NULL default 'Russian',
Created datetime NOT NULL default '0000-00-00 00:00:00',
LastUpdated timestamp(14) NOT NULL,
user_id varchar(255) default NULL,
UsLogin varchar(255) NOT NULL default '',
PRIMARY KEY  (id));

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования