[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php/mysql. Ошибка в запросе
CyBerSt0rm
Всем добрый день. Есть проблема с запросом, я начинающий в PHP.
Вот он:

mysql_query("
INSERT INTO ausers SET (email=$_POST[email],login=$_POST[login],password=$_POST[password])")
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 '(email=dsd@sds,login=sd,password=d)' at line 1

------------------------------------

И вот еще:

так работает:

$login = mysql_real_escape_string($_POST[login]);
$email = mysql_real_escape_string($_POST[email]);
$result = mysql_query("SELECT COUNT(*)
FROM ausers
where
(login=$login) or
(email=$email");


а так нет: (Ошибка в последней строке Parse error: syntax error, unexpected ';' in D:\Program Files\Apache Group\htdocs\register.php on line 52)

$result =mysql_query("
SELECT COUNT(*)
FROM `ausers`
where
(login=`".mysql_real_escape_string($_POST[login])."`) or
(email=`".mysql_real_escape_string($_POST[email])."`)";

Почему?

Спасибо за ответы



Спустя 4 часа, 5 минут, 56 секунд (2.07.2007 - 23:42) md5 написал(а):
Цитата
mysql_query("
INSERT INTO ausers SET (email=$_POST[email],login=$_POST[login],password=$_POST[password])")
or die('Ошибка добавления записи в базу данных: '.mysql_error());

синтаксис ИНСЕРТА ищите в гугле
в кратце —
Код
INSERT
INTO `table`
(`field1`, `field2`)
VALUES ('value1', 'value2')



в твоем случае это:
Код
INSERT
INTO `table`
(`email`, `login`, `password`)
VALUES ('$_POST['email']', '$_POST['login']', '$_POST['password']')

к этому обязательно прочти вот здесь — http://phpfaq.ru/slashes

А SET относится к UPDATE запросам

по второй части — не забывай про кавычки и апострафы
$_POST[email] => $_POST['email'] (это к сведению)

Цитата
login=`".mysql_real_escape_string($_POST[login])."`
объясняю популярно: в апострафы или обратные кавычки (`) мы заключаем имена таблиц и полей, значения мы должны заключать в обычные кавычки (')
в твоем случае:
Код
`login`='".mysql_real_escape_string($_POST[login])."'

Спустя 12 часов, 59 минут, 16 секунд (3.07.2007 - 12:42) CyBerSt0rm написал(а):
Спасибо, помогло.

mysql_query("
INSERT INTO
`ausers`
(`email`,`login`,`password`)
VALUES
('$email','$login','$password')")
or die('Ошибка добавления записи в базу данных!');

Работает

Спустя 12 минут, 35 секунд (3.07.2007 - 12:54) md5 написал(а):
тока лучше ставить:
Код
or die(mysql_error());

больше инфы будет в случае ошибки wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.