我在PHP中的某处编写了以下代码:
$sql="UPDATE drivers ".
"SET Location=$lo ".
"WHERE DriverId=$id";
echo $sql;
回声的结果是
UPDATE drivers SET Location = locA WHERE DriverId = 3
然而,当我跑
时$result = mysqli_query($con2,$sql);
echo $result;
echo mysqli_error($con2);
我得到了
'字段列表'中的未知列'locA'
为什么我得到'locA'而不是Location作为列名?
答案 0 :(得分:3)
locA是一个字符串,需要引用。
$sql="UPDATE drivers ".
"SET Location='$lo' ".
"WHERE DriverId=$id";
您应该考虑使用PDO和预备语句来为您做报价。
答案 1 :(得分:2)
您需要将$lo
放在单引号中:
$sql="UPDATE drivers ".
"SET Location='$lo' ".
"WHERE DriverId='$id'";
答案 2 :(得分:1)
至少你必须
$ sql =“UPDATE drivers”。 “SET Location ='$ lo'”。 “WHERE DriverId = $ id”;
但是转到mysqli并使用预备语句。如果你按照我的建议行事,你就可以对SQL注射做广泛了。
答案 3 :(得分:1)
MySQL正在尝试将locA评估为字段,因为它不是字符串值。尝试更像:
$sql="UPDATE drivers ".
"SET Location='".$lo."' ".
"WHERE DriverId=$id";
哪个应该导致:
更新驱动程序SET Location =' locA' WHERE DriverId = 3
PDO和准备好的陈述将是其他人提到的方式。