更新时出现SQL错误

时间:2015-10-06 17:53:09

标签: php mysql

我遇到了错误,我不知道我的代码有什么问题。有人能帮助我吗?

  

错误:UPDATE用户SET voornaam = Test,achternaam = Test2,mail = test @ test.com,tel =,adres =,geslacht = man,bestuur = 0,tc = 0,ic = 0,jec = 0, rvr =,instructeur = 0,webmaster = 0 WHERE id = 1   您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'adres =,geslacht = man,bestuur = 0,tc = 0,ic = 0,jec = 0,rvr =,instruct'在第1行附近使用正确的语法/ p>

$id = $_GET['u'];

$sql = "UPDATE users SET voornaam = $voornaam, achternaam = $achternaam,
        mail = $mailadres, tel = $tel, adres = $adres, geslacht = $geslacht,
        bestuur = $bestuur, tc = $tc, ic = $ic, jec = $jec, rvr = $rvr, 
        instructeur = $instructeur, webmaster = $webmaster WHERE id = ".$id."";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

4 个答案:

答案 0 :(得分:2)

你必须引用任何字符串,如'xxxx',否则缺少空字符串,带空格的字符串被视为2字符串achternaam = van mueller错误但是achternaam ='van mueller'还可以achternaam = ''

答案 1 :(得分:2)

你应该有类似的东西:

$sql = "UPDATE `users` 
           SET `voornaam` = '$voornaam', 
             `achternaam` = '$achternaam', 
                   `mail` = '$mailadres', 
                    `tel` = '$tel', 
                  `adres` = '$adres', 
               `geslacht` = '$geslacht', 
                `bestuur` = '$bestuur', 
                     `tc` = '$tc', 
                     `ic` = '$ic', 
                    `jec` = '$jec', 
                    `rvr` = '$rvr', 
            `instructeur` = '$instructeur', 
              `webmaster` = '$webmaster' 
           WHERE id = '".$id."'";

这样,如果任何地方都有空字段,您将受到保护。您还应确保清理要在数据库中插入的所有条目。

答案 2 :(得分:2)

您需要在更新后的值周围添加引用',例如

$sql = "UPDATE users SET voornaam = '$voornaam', achternaam = '$achternaam', mail = '$mailadres', tel = '$tel', adres = '$adres', geslacht = '$geslacht', bestuur = '$bestuur', tc = '$tc', ic = '$ic', jec = '$jec', rvr = '$rvr', instructeur = '$instructeur', webmaster = '$webmaster' WHERE id = '".$id."'";

答案 3 :(得分:2)

如果您不确定在查询之前是否设置了变量,请在使用isset创建SQL查询之前检查它们:

if (!isset($a)) {
    $a = ''
}

并将您的变量放在引号中:

$sql = "UPDATE users SET voornaam='$voornaam', achternaam='$achternaam',   
        mail='$mailadres', tel='$tel', adres='$adres', geslacht='$geslacht', 
        bestuur='$bestuur', tc='$tc', ic='$ic', jec='$jec', rvr='$rvr', 
        instructeur='$instructeur', webmaster='$webmaster' WHERE id='".$id."'";