是否建议在主键上绑定值?

主键值来自数据库结果。

注意:它不与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);

最佳答案

这更多是个人喜好。在上述情况下,当结果的数据类型是整数(例如PK或其他int值)时,我从不执行bindValue而是直接连接,例如:

$sql = 'SELECT * FROM store WHERE storeID=' . $row['storeID']; $result = $db->prepare($sql)->execute()->fetch(PDO::FETCH_ASSOC);

只是因为它更短,并且可能更快。但是不要为这种过早的微优化而烦恼,如果您始终使用bindValue的做法,那么它根本不会影响您的性能。但是,如果将它连接起来看起来比较干净,那么在这种情况下就没有安全漏洞,因此,请继续使用。

10-04 13:34