Перейти к содержимому



  • Закрытая тема Тема закрыта

Ошибка при записи

#1 ilyazh

ilyazh
  • Пользователь
  • 356 сообщений
  • Репутация: 1
0

Отправлено 17 Август 2009 - 11:41

Необходимо записать данные из php в базу mysql. Я взял из другого рабочего и написанного мной скрипта строку запроса т.к. наизусть я её не помню. Вставил её в новый скрипт и она не работает. Как? Поставил вывод 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 'key, name, lastenter, invites, man) values ('Ilya','3b7ac36eaa4fb7d3a6b85a6991a6' at line 1

Подскажите плжалуйста, что здесь не так. Вот сама строка в скрипте
<?php if(mysql_query("INSERT INTO users (login, password, key, name, lastenter, invites, man) values ('".$inlog."','".$inpass."','".$zero."','".$yyname."','".$zero."','".$zero."','".$mant."')")) {
				echo "<root><message type=\"success\">Вы успешно зарегистрированы</message></root>";
			} ?>
Почему вот в одном скрипте работает, а в другом нет? У меня уже нервы кончаются xD
з.ы. Начало и конец php кода я обозначил <?php и ?> только для того, что заработала подсветка кода. Само собой, до этого у меня идёт подключение к базе и соединение с сервером.

 

 

  • 0

#2 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 17 Август 2009 - 14:27

попробуй KEY переименовать во что-нибудь другое
  • 0

#3 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 17 Август 2009 - 21:02

или заключи в обратные кавычки
  • 0

#4 ilyazh

ilyazh
    Topic Starter
  • Пользователь
  • 356 сообщений
  • Репутация: 1

Отправлено 17 Август 2009 - 22:31

бесполезно - всё пере пробовал. ПОмогло только полностью переписать запрос в виде insert into users set aaa=', bbb=''...
  • 0

#5 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Август 2009 - 14:36

ilyazh, если ты заносишь все поля, можно не перечислять их названия. А так у тебя в запросе либо key либо password используется как ключевое. Такие надо заключать в обратные ковчки `ключевое`
  • 0

#6 ilyazh

ilyazh
    Topic Starter
  • Пользователь
  • 356 сообщений
  • Репутация: 1

Отправлено 19 Август 2009 - 16:25

Почему они как ключевые? ПРостые поля, как и все. Тип текст.
  • 0

#7 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Август 2009 - 16:33

Ты меня не понял. Это не поля ключевые, а слова используемые.

/usr/local/mysql/bin/mysql -D db_test --password=secret_passowrd --user=user < /root/test.sql ERROR 1064 at line 161: You have an error in your SQL syntax near 'option varchar(50) NOT NULL default , ordering int(11) NOT NULL default '0',' at line 9

Обычно это означает что какое-то имя столбца MySQL принял за ключевое слово, в этом случае нужно отредактировать дамп на указанной строчке (161) например с помощью Vi: имя столбца (в данном примере option) нужно заключить в `обратные кавычки`.

Смена пароля пользователя

mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

Надеюсь теперь понятно, что password участвует не только в названиях стоблцов, да и KEY тоже
А вообще всё так же зависит от конфигурации MySQL, там очень много тонких настроек.
  • 0


Оформление форума – IPBSkins.ru