SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 07.07.2008 17:33:21

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

не пойму почему не работает

у меня вот такое дело:
<?php
$db=mysql_connect("localhost", "user");
mysql_select_db("mybd", $db);
$a="INSERT INTO users(n)VALUES('$n')";$result=mysql_querry($a);
не работает.Почему? помогите разобраться

Неактивен

 

#2 07.07.2008 18:44:21

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

Re: не пойму почему не работает

mysql_querry пишется с одним r.

А вообще, имеет смысл писать и выводимые ошибки тоже wink

Неактивен

 

#3 08.07.2008 04:27:04

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

С буквой r я просто опечатался. А ошибок никаких нет, просто ничего не вставляется в таблицу. Провожу контроль выполнения запроса, то есть при удачном занесений в таблицу выводится одно сообщение, иначе другое. Так вот, судя по сообщению всё занеслося. Смотрю через phpmyadmin Ничего нет. Уже 3 недели маюсь. В чем моя ошибка?

Неактивен

 

#4 08.07.2008 06:50:36

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

Re: не пойму почему не работает

Используйте диагностику ошибок в своем скрипте


$db=mysql_connect("localhost", "user") or die(mysql_error());
mysql_select_db("mybd", $db) or die(mysql_error());
$a="INSERT INTO users(n)VALUES('$n')";
$result=mysql_query($a) or die(mysql_error());
 

Неактивен

 

#5 08.07.2008 07:29:39

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

Спасибо, стал выдавать кучу ошибок. попробую разобраться

Неактивен

 

#6 08.07.2008 09:54:39

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

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

Неактивен

 

#7 08.07.2008 09:59:48

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

Re: не пойму почему не работает

В приведенном Вами запросе недостаточно пробелов.
$a="INSERT INTO users (n) VALUES ('$n')";

Лучше всего приводить полный текст кода ошибки, а не пересказ.

Неактивен

 

#8 08.07.2008 13:23:17

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

текст ошибки такой. 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 ''n') VALUES ('')' at line 1
надеюсь Вы эту ошибку правильно поймете и объясните в чем дело. Заранее спасибо

Неактивен

 

#9 08.07.2008 18:58:14

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

Re: не пойму почему не работает

А вот с кавычками Вы перестарались - вокруг n не должно быть кавычек. Если хочется
ограничить названия столбцов, то нужно использовать обратные кавычки (`), а не
прямые (').

Неактивен

 

#10 09.07.2008 04:24:35

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

хорошо попробую

Неактивен

 

#11 09.07.2008 10:55:14

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

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

Неактивен

 

#12 09.07.2008 11:08:17

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

Re: не пойму почему не работает

Как смотрели данные в базе. Что значит пустая строка? Чему была равна переменная $n в приведенном скрипте?

Неактивен

 

#13 09.07.2008 17:18:28

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

записи в базе смотрю через phpmyadmin и через скрипт который выводит содержимое базы. а переменная передается из другого файла посредством хтмл-формы, методом POST тип переменой текстовый. пустая строка значит пустая. значение переменной не заносится в таблицу.

Неактивен

 

#14 09.07.2008 17:52:57

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

Re: не пойму почему не работает

А напишите вместо $n: 'абв' - занесется строка?

Неактивен

 

#15 09.07.2008 19:08:45

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

да так заносится, уже проверял. и ещё двойные кавычки ставил, в этом случае заносится имя переменной. а вот как значение занести?

Неактивен

 

#16 10.07.2008 05:20:40

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

Re: не пойму почему не работает

Используйте напрямую $_POST['n']

Неактивен

 

#17 10.07.2008 06:35:26

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

вы имеете ввиду что надо писать вот так: $a = "INSERT INTO users ('n') VALUES ($_POST['n'])";
я правильно Вас понял?

Отредактированно winch (10.07.2008 06:37:28)

Неактивен

 

#18 10.07.2008 07:43:16

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

Re: не пойму почему не работает

$a = "INSERT INTO users ('n') VALUES ('" . $_POST['n'] ."')";
или
$a = "INSERT INTO users ('n') VALUES ('{$_POST[n]}')";

Неактивен

 

#19 10.07.2008 08:40:22

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

отлично попробую сделать как Вы написали. кстати сделал как написал я, заметил одну вещь, значение переменной записалось, но почему то записываются только цифры. символы и буквы не записываются. пожалуйста, объясните почему?

Неактивен

 

#20 10.07.2008 08:47:33

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

Re: не пойму почему не работает

Возможно тип колонки в таблице - числовой. Если Вы разместите структуру таблицы (SHOW CREATE TABLE имя_таблиц) и реальный текст используемого скрипта, то тема может развиваться быстрее.

Неактивен

 

#21 10.07.2008 19:39:10

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

таблицу создал через phpmyadmin, тип колонки TEXT.

Неактивен

 

#22 10.07.2008 20:14:40

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

Re: не пойму почему не работает

Возможно, в скрипте у Вас используется intval() wink
Думаю, без реального кода дальше мы уже не продвинемся.

Неактивен

 

#23 17.07.2008 23:49:13

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

я сейчас в отпуске. после 23 продолжу пытать вас :-)

Неактивен

 

#24 31.07.2008 13:42:08

winch
Завсегдатай
Зарегистрирован: 07.07.2008
Сообщений: 25

Re: не пойму почему не работает

здравствуйте. вот текст файла-обработчика.<?php
$db=mysql_connect('localhost',"username");
mysql_select_db('source',$db);
mysql_query(INSERT INTO table ('data') VALUES ("'.$_POST['data'].'")",$db);
if(mysql_error($db)!=""){die(no<br/>\n");}
echo "yes";
mysql_close($db);
?>
Что тут неверно?

Отредактированно winch (31.07.2008 13:44:14)

Неактивен

 

#25 31.07.2008 13:51:26

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

Re: не пойму почему не работает

Вы когда устраняете реальные названия, хотя бы не меняйте остальной код. Этот код не будет
работать просто потому что в нем неправильно расставлены кавычки.

UPD:
После расставления кавычек, Ваш код будет подвержен стандартной атаке SQL_INJECTION.
Нужно использовать addslashes в какой-то форме.

Неактивен

 

Board footer

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