我如何知道准备语句是否正在缓存?

时间:2011-11-28 15:38:39

标签: php mysql pdo

我一直在我的PHP脚本中重用相同的变量$stmt来编写预准备语句:

$stmt = $dbh->prepare("SELECT column_A FROM Table1 WHERE id=?");
$stmt->bindValue(1, $id, PDO::PARAM_INT);
$stmt->execute();
....

$stmt = $dbh->prepare("UPDATE Table2 SET column_B=? WHERE column_A=?");
$stmt->bindValue(1, $name);
$stmt->bindValue(2, $column_A);
$stmt->execute();

我的问题是,我怎么知道这两个语句是否被写入缓存而第二个语句没有覆盖第一个语句,尽管两个语句共享相同的变量名?

2 个答案:

答案 0 :(得分:2)

语句由数据库引擎而不是PHP准备,请参阅:

因此,在PHP中重用相同的变量名称不会使MySQL准备“缓存”无效。

答案 1 :(得分:0)

你没有。但是覆盖变量不会有太大变化 - 你为变量赋值,而不是编辑任何东西。