MySQL插入错误

时间:2016-01-12 14:09:57

标签: php mysql

这是我第一次使用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()); 

如果这还没有足够的信息,请告诉我。我尝试了很多东西,但我似乎无法弄明白。

4 个答案:

答案 0 :(得分:5)

您混合了insertupdate语法。替换

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