主键上的bindValue如何?

时间:2011-06-21 11:48:01

标签: php mysql pdo bindvalue

是否建议在主键上使用bindValue?

主键值来自数据库结果。

注意:它没有与GET / POST查询链接。

例如:

$SQL2 = "SELECT storeID FROM orders limit 1"
$q = $db->prepare($SQL);
$q->execute();
$row = $q->fetch(PDO::FETCH_ASSOC);

$PrimaryKey = $row['storeID'];

$SQL2 = "SELECT * FROM store WHERE storeID= :storeID"
$q2 = $db->prepare($SQL);
$q2->bindValue(":storeID", $PrimaryKey);

2 个答案:

答案 0 :(得分:2)

这更像是个人偏好。在上面这种情况下,当你的结果的数据类型是整数像PK或其他int值时,我从不做bindValue但直接连接,例如:

$sql = 'SELECT * FROM store WHERE storeID=' . $row['storeID'];

$result = $db->prepare($sql)->execute()->fetch(PDO::FETCH_ASSOC);

仅仅因为它更短,可能更快一点。但是不要为这种过早的微优化而烦恼,如果你总是使用bindValue,它根本不会影响你的性能。但是,如果让它连接起来看起来更干净,那么在这些情况下就没有安全漏洞,所以去吧。

答案 1 :(得分:0)

考虑到它不是开销是使用它。您可以使用?表示法缩短它。