Php 使用PDO语法的问题

Php 使用PDO语法的问题,php,mysql,pdo,Php,Mysql,Pdo,在使用PDO更新MySQL中的记录时有一个小问题。当我使用语法时,它无法更新,例如,如果我使用:“它将使我失败。我在用我的prepare,但就是撇号没用 if($_POST['ourstory']) { foreach($_POST['ourstory'] as $id => $ourstory) { $sql = "UPDATE our_story SET content = '$ourstory' WHERE id = '$id'"; $q =

在使用PDO更新MySQL中的记录时有一个小问题。当我使用语法时,它无法更新,例如,如果我使用:
它将使我失败。我在用我的prepare,但就是撇号没用

if($_POST['ourstory']) {
    foreach($_POST['ourstory'] as $id => $ourstory) {
        $sql = "UPDATE our_story SET content = '$ourstory' WHERE id = '$id'";
        $q = $db->prepare($sql);
        $q->execute(array($id,$ourstory));
    }
}

这不是你使用准备好的陈述的方式。您想在查询中使用

$sql = "UPDATE our_story SET content = ? WHERE id = ?";
$q = $db->prepare($sql);
$q->execute(array($ourstory, $id));

您应该绑定变量,而不是将它们直接添加到SQL字符串中。?这个问号实际上是一个答案P
$sql=“更新我们的故事集内容=?其中id=?”因为您使用的是
execute(array())
,所以请使用问号占位符,而不是语法。您希望句子不需要不合语法就可以插入数据库。另外:也谢谢你。我的英语不是很好,但是非常感谢你。你也可以做
设置content=:content其中id=:id
,然后
执行(数组(':content'=>$content',:id'=>$id')
)。