我遇到了错误,我不知道我的代码有什么问题。有人能帮助我吗?
错误: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;
}
答案 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."'";