虽然使用预处理语句,但是以绝对错误的方式使用它,因为在准备之前将参数插入sql命令而不进行任何转义。此外,您不包含字符串参数 ' 。
'
这意味着
1)您的代码容易受到SQL注入攻击。
2)如果您的国家/地区列表中包含的国家/地区包含 ' 在里面(比如 C?te d'Ivoire ),那么你的SQL将在语法上不正确。
C?te d'Ivoire
解决方案:通过绑定参数以正确的方式使用预准备语句。
... $upd = "UPDATE adverts SET ad_country = :countries WHERE ad_id = :id"; $upq = $pdo->prepare($upd); $upq->bindParam(':countries', $country); $upq->bindParam(':id', $id); $upq->execute(); ...