Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: rip_darkman в Jul 25, 2009, 19:25



Титла: php -> mysql : INSERT error
Публикувано от: rip_darkman в 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!" ;
?>     


Титла: Re: php -> mysql : INSERT error
Публикувано от: neter в 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."\")";
Премахването на някои интервали, които премахнах, не е задължително (въпрос на вкус), но премахването на интервалите в първите скоби е задължително ;)


Титла: Re: php -> mysql : INSERT error
Публикувано от: rip_darkman в Jul 30, 2009, 17:35
Problem Solved :)
Благодаря за отделеното време и информацията, neter .