Задавайте вопросы, мы ответим
Вы не зашли.
Прошу прощения - не знаю в какой форум написать.
Обнаружил в скрипте что в месте, где нужно только 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!
Неактивен
Приведите полностью запрос
Неактивен
SELECT `nick`, `rate`, `reged` FROM `user`.`main` WHERE `id`=".$uid
Неактивен
А если все одиночные кавычки убрать?
Неактивен
тоже не работает - пробывал ((
Неактивен
А там точно ", а не ''? Просто дикое ощущение, что не нравится именно в хвосте.
Неактивен
Проверил всё 100500 раз. Запросы пишу всегда без запинок, тут на те. Переписал его раз 5. Попробывал заменить " на ' просто, чтобы не мучаться. Упорно не хочет работать. Как бы смешно сие не выглядело, но я даже MySQL переставил (из-за других целей, но всё же) всё равно не работает Что это может быть? впервые такая пакость неисправимая
Неактивен
Может дело в том что код (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)
Неактивен
Напишите так:
$sql = "SELECT `nick`, `rate`, `reged` FROM `user`.`main` WHERE `id`=".$uid;
echo $sql;
mysql_query($sql) or die(mysql_error());
Может быть пустая переменная $uid?
Неактивен
переменная 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)
Неактивен
Попробуйте intval($uid) вместо $uid
Неактивен
в скрипте $uid = intval($_GET['id']);
а точнее :
$uid = intval($_GET['id']);
if ($uid == 0) err('Пользователя не существует');
Отредактированно Proger (03.02.2009 02:58:20)
Неактивен
А точно ошибка после именно этого запроса возникает?
Добавьте переносы строк. Покажет по крайней мере в какой строчке ошибка.
$sql = "SELECT\n `nick`, `rate`, `reged`\n FROM `user`.`main`\n WHERE\n `id`=".$uid;
Неактивен
Добавил, получил запару в этом же месте и это 99.99% ибо если изменить запрос то всё работает.
Тут ночью обнаружил странную вещь...запрос INSERT раньше, где были поля auto_increment у меня в запросе стояло NULL, а вчера (после перехода на оф. сборку ( 5.0.67-community-nt )) эти все инсерты полегли. Благо запрос формировался через дополнительную функцию в php и я просто сделал замену значения, если оно NULL поставил 0.
Правда глюк с запросом появился ещё до переустановки сервера. Главное запрос то простяцкий, просто жутко интерестно что не так. Я щаз попробую с помощью функций дебагинга вывести всё запросы прошедшие до места ошибки, но толку по-моему...
Неактивен
!!!!!
Оказалось всё бредовей до немогу. Запрос работал при SELECT * ибо другой модуль в этом случае получал $memb['id'], а когда он её не получал запрос в модуле рушился. Самый старый модуль, притом сделанный другим человеком.
Спасибо за терпение и помощь. Разобрался.
Неактивен