0

这是我的代码:

$page = 'home';
$data = 'blah blah blah';
// my database connection (i know there is no problems here);
require_once('../inc/connection.php');
$id = 1;
$values = array(
    ':page' => $page,
    ':id' => $id,
    ':data' => $data
);
$query = 'UPDATE site SET :page=:data WHERE id=:id';
$sql = $conn->prepare($query);
$sql->execute($values);
// this prints out perfect
echo 'UPDATE site SET '.$page.'='.$data.' WHERE id='.$id;

当我运行此页面时,它会在最后打印回显,但是当我检查我的站点表时,它不会反映更新。我不知道我在做什么。连接很好,因为我可以很好地进行选择查询。

4

1 回答 1

2

表名和列名不能被 PDO 中的参数替换

所以

$query = 'UPDATE `site` 
          SET `page`=:data 
          WHERE id=:id';

查询应该做特定的事情,如果您需要动态列,那么可能将它们放在iforswitch语句中,或者使用处理列变化等的类方法构建一个数据库模型来处理这个问题。

于 2013-06-04T00:11:14.830 回答