这是我第一次使用MYSQL,我似乎无法解决这个错误。我试图将数据存储到其id(第一列)上有auto_increment的表中。 我不断得到的错误是:
"您的SQL语法出错了;检查与您的MySQL服务器版本相对应的手册,以便在' voorletters =' asd',tussenvoegsel ='',achternaam ='& #39;,roepnaam ='',adres ='','在第1行"
我只是填充了一些文本框,没有列也需要数据。这是我使用的代码:
if(isset($_POST['save']))
{
$voorletters = $_POST['voorletters'];
$tussenvoegsel = $_POST['tussenvoegsel'];
$achternaam = $_POST['achternaam'];
$roepnaam = $_POST['roepnaam'];
$adres = $_POST['adres'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$geslacht = $_POST['geslacht'];
$emailadres = $_POST['emailadres'];
$telefoonnummer = $_POST['telefoonnummer'];
$mobielenummer = $_POST['mobielenummer'];
$geboortedatum = $_POST['geboortedatum'];
$bsn = $_POST['bsn'];
mysql_query("INSERT INTO `naw` "
. "voorletters ='$voorletters', "
. "tussenvoegsel ='$tussenvoegsel', "
. "achternaam ='$achternaam', "
. "roepnaam ='$roepnaam', "
. "adres ='$adres', "
. "postcode ='$postcode', "
. "plaats ='$plaats', "
. "geslacht ='$geslacht', "
. "emailadres ='$emailadres', "
. "telefoonnummer ='$telefoonnummer', "
. "mobielenummer ='$mobielenummer', "
. "geboortedatum ='$geboortedatum', "
. "bsn ='$bsn' "
. "WHERE id = '$id'")
or die(mysql_error());
如果这还没有足够的信息,请告诉我。我尝试了很多东西,但我似乎无法弄明白。
答案 0 :(得分:5)
您混合了insert
和update
语法。替换
INSERT INTO `naw` voorletters ='$voorletters'...
与
UPDATE `naw` set voorletters ='$voorletters'....
您应该使用 Prepared Statements 来避免因用户输入而导致语法错误和SQL注入。
答案 1 :(得分:0)
只需使用以下代码即可。确保按顺序为每个字段插入数据 -
mysql_query("INSERT INTO `naw` VALUES(
'".$voorletters."',
'".$tussenvoegsel."',
'".$achternaam."',
'".$roepnaam."',
'".$adres."',
'".$postcode."',
'".$plaats."',
'".$geslacht."',
'".$emailadres."',
'".$telefoonnummer."',
'".$mobielenummer."',
'".$geboortedatum."',
'".$bsn."')")
or die(mysql_error());
答案 2 :(得分:0)
语法错误
INSERT
语法是
INSERT INTO `YourTableName`(`Field1`, `Field2`, `Field3`, `Field4)
VALUES ('value-1','value-2','value-3','value-4')
UPDATE
语法是
UPDATE `YourTableName`
SET `Field1`='value-1',`Field2`='value-2',`Field3`='value-3',`Field4`='value-4'
WHERE YourConditions
答案 3 :(得分:0)
你应该删除``around naw,它在phpmyadmin中没问题,但几乎在其他任何地方都很乱。 而且你不能连接每一行,用一个“......”来做,并使用退格键使它更具可读性。
所以:
mysql_query("INSERT INTO naw
VALUES('$voorletters',
'$tussenvoegsel',
... ,
WHERE id = '$id'");//you can't do that, maybe you should use an UPDATE