Автор Тема: php -> mysql : INSERT error  (Прочетена 2885 пъти)

rip_darkman

  • Напреднали
  • *****
  • Публикации: 65
    • Профил
php -> mysql : INSERT error
« -: Jul 25, 2009, 19:25 »
На сорс кода по-долу ми връща следната грешка. Някакви идеи?
Код:
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 ''name' , 'password' ) VALUES(username,password)' at line 1

Код:
<?php
 include ("webvars.inc");
 mysql_connect($hostname, $db_user , $password) or die(mysql_error());
 mysql_select_db("experiment");
 $username='username';
 $pass='password' ;
 $query = " INSERT INTO user ( 'name' , 'password' ) VALUES(". $username .",". $pass . ") " ;
 $result= mysql_query($query) or die (mysql_error());
 echo "You're registered!" ;
?>     
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: php -> mysql : INSERT error
« Отговор #1 -: Jul 26, 2009, 00:18 »
1. Махни кавичките от имената на колоните в заявката или използвай за кавичка символа за апостроф, който се намира на клавиша с вълничката (отляво на клавиша 1);
2. Имаш излишни интервали в заявката;
3. Тъй като си оградил цялата заявка в двойни кавички, и използваш същите двойни кавички без допълнително форматиране за ограждане на стойностите (тези в скобите на VALUES), заявката ти се прекъсва до VALUES(, тъй като php интерпретаторът смята, че заявката свършва там, срещайки същата кавичка, с която е започнала заявката. И така за следващите кавички. Но, ти имаш нужда не само от прекъсване на заявката, за да си впишеш променливите, но имаш нужда и от кавички, с които да оградиш стойностите. Има няколко начина за избягване на това недоразумение - използване на единични кавички във VALUES, escape-ване на променливите, слагане на символ \ пред всяка двойна кавичка във VALUES...
Ето ти поправени примери на твоята заявка:
Код
GeSHi (PHP):
  1. $query = "INSERT INTO user (name,password) VALUES('".$username."','".$pass."')";
  2. $query = "INSERT INTO user (name,password) VALUES('{$username}','{$pass}')";
  3. $query = "INSERT INTO user (name,password) VALUES(\"".$username."\",\"".$pass."\")";
Премахването на някои интервали, които премахнах, не е задължително (въпрос на вкус), но премахването на интервалите в първите скоби е задължително ;)
« Последна редакция: Jul 26, 2009, 00:23 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

rip_darkman

  • Напреднали
  • *****
  • Публикации: 65
    • Профил
Re: php -> mysql : INSERT error
« Отговор #2 -: Jul 30, 2009, 17:35 »
Problem Solved :)
Благодаря за отделеното време и информацията, neter .
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
MySQL error messages v apache error log
Настройка на програми
plamensl 2 5281 Последна публикация May 21, 2003, 15:27
от plamensl
mysql error
Настройка на програми
firlin 3 1949 Последна публикация Apr 18, 2005, 10:42
от firlin
Mysql error /localhost
Web development
_DeXteR_ 6 2918 Последна публикация Jun 19, 2006, 23:52
от zgv
Mysql error 2002
Кошче
kakaomen 3 3067 Последна публикация Jun 19, 2008, 09:54
от neter
Mysql error
Настройка на програми
chesster 10 6206 Последна публикация Aug 26, 2008, 09:56
от bnight