所以我试图更新一个数据库表,通过诅咒这里的坏词是我的查询,但我不太清楚如何做到这里是我的代码
$query2 = $bdd->prepare("SELECT texte FROM commentaires");
$query2->execute();
$res2 = $query2->fetchAll();
foreach($res2 as $result) {
$originaltext = $result["texte"];
$newtext = grosmots($result["texte"]);
$query2 = $bdd->prepare("UPDATE commentaires SET texte = {$newtext} WHERE texte = :oldtext");
$query2->bindValue(":oldtext", $originaltext);
$query2->execute();
}
print '<pre>';
print_r($res2);
print '</pre>';;
答案 0 :(得分:1)
您错过了引用$ newtext变量。
但是当你使用PDO时,你应该避免在查询中放入一个变量,似乎你的代码容易受到SQL注入攻击。我建议做出以下改变:
$statement = $bdd->prepare('UPDATE commentaires SET texte = :newtext WHERE texte = :oldtext;');
$statement->bindValue(":newtext", $newtext);
$statement->bindValue(":oldtext", $originaltext);
$statement->execute();
答案 1 :(得分:0)
更改您使用SET texte = {$newtext}
MySQL会抱怨这一点。
修改您的查询,使其显示为:
SET texte = '".$newtext."'
或者,你可以使用另一个绑定。
在打开连接后立即添加$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
。
旁注:错误报告应仅在暂存时完成,而不是生产。