SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

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

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

Вы не зашли.

#1 02.02.2009 20:53:11

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Бред какой-то апострафами

Прошу прощения - не знаю в какой форум написать.
Обнаружил в скрипте что в месте, где нужно только 3 поля из БД брать, используется запрос SELECT * поставил SELECT `field1`, `field2`, `field3` и mysql при запросе из php скрипта пишет: "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", НО если сделать этот же запрос через phpmyadmin всё работает. Ничего не понимаю, что это может быть? Один из первых запросов в скрипте, ничего не понимаю.
Select * работает, как только ставлю конкретные поля - еррор %\ HELP!

Неактивен

 

#2 02.02.2009 20:56:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Бред какой-то апострафами

Приведите полностью запрос

Неактивен

 

#3 02.02.2009 20:57:25

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Бред какой-то апострафами

SELECT `nick`, `rate`, `reged` FROM `user`.`main` WHERE `id`=".$uid

Неактивен

 

#4 02.02.2009 20:59:46

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Бред какой-то апострафами

А если все одиночные кавычки убрать?

Неактивен

 

#5 02.02.2009 21:00:48

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Бред какой-то апострафами

тоже не работает - пробывал sad((

Неактивен

 

#6 02.02.2009 21:12:09

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Бред какой-то апострафами

А там точно ", а не ''? Просто дикое ощущение, что не нравится именно в хвосте.

Неактивен

 

#7 02.02.2009 22:08:12

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Бред какой-то апострафами

Проверил всё 100500 раз. Запросы пишу всегда без запинок, тут на те. Переписал его раз 5. Попробывал заменить " на ' просто, чтобы не мучаться. Упорно не хочет работать. Как бы смешно сие не выглядело, но я даже MySQL переставил (из-за других целей, но всё же) всё равно не работает sad Что это может быть? впервые такая пакость неисправимая sad

Неактивен

 

#8 02.02.2009 22:10:35

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Бред какой-то апострафами

Может дело в том что код (php):

$memb = mquery("SELECT `nick`, `rate`, `reged` FROM `user`.`main` WHERE `id`=".$uid);

функция mquery такова:
function mquery($query) {
  global $x;
  $x['qc'] = $x['qc']+1; //счетчик запросов
  return mysql_query($query);
}

Отредактированно Proger (02.02.2009 22:16:54)

Неактивен

 

#9 02.02.2009 23:38:05

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Бред какой-то апострафами

Напишите так:
$sql = "SELECT `nick`, `rate`, `reged` FROM `user`.`main` WHERE `id`=".$uid;
echo $sql;
mysql_query($sql) or die(mysql_error());

Может быть пустая переменная $uid?

Неактивен

 

#10 02.02.2009 23:57:17

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Бред какой-то апострафами

переменная uid если пустая то скрипт остановиться до запроса, выдав ошибку входных параметров...

echo $sql делал уже и то что выдавало в phpmyadmin'e работало...

Ну вот исполнил ваш код, получил:

SELECT `nick`, `rate`, `reged` FROM `user`.`main` WHERE `id`=35474
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

Отредактированно Proger (02.02.2009 23:57:44)

Неактивен

 

#11 03.02.2009 00:26:11

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Бред какой-то апострафами

Попробуйте intval($uid) вместо $uid

Неактивен

 

#12 03.02.2009 02:57:06

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Бред какой-то апострафами

в скрипте $uid = intval($_GET['id']);

а точнее :
$uid = intval($_GET['id']);
if ($uid == 0) err('Пользователя не существует');

Отредактированно Proger (03.02.2009 02:58:20)

Неактивен

 

#13 03.02.2009 10:48:48

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Бред какой-то апострафами

А точно ошибка после именно этого запроса возникает?

Добавьте переносы строк. Покажет по крайней мере в какой строчке ошибка.

$sql = "SELECT\n `nick`, `rate`, `reged`\n FROM `user`.`main`\n WHERE\n `id`=".$uid;

Неактивен

 

#14 03.02.2009 11:40:48

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Бред какой-то апострафами

Добавил, получил запару в этом же месте и это 99.99% ибо если изменить запрос то всё работает.
Тут ночью обнаружил странную вещь...запрос INSERT раньше, где были поля auto_increment у меня в запросе стояло NULL, а вчера (после перехода на оф. сборку ( 5.0.67-community-nt )) эти все инсерты полегли. Благо запрос формировался через дополнительную функцию в php и я просто сделал замену значения, если оно NULL поставил 0.
Правда глюк с запросом появился ещё до переустановки сервера. Главное запрос то простяцкий, просто жутко интерестно что не так. Я щаз попробую с помощью функций дебагинга вывести всё запросы прошедшие до места ошибки, но толку по-моему...

Неактивен

 

#15 03.02.2009 11:53:20

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Бред какой-то апострафами

!!!!!
Оказалось всё бредовей до немогу. Запрос работал при SELECT * ибо другой модуль в этом случае получал $memb['id'], а когда он её не получал запрос в модуле рушился. Самый старый модуль, притом сделанный другим человеком.
Спасибо за терпение и помощь. Разобрался.

Неактивен

 

Board footer

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