【问题标题】:How bindValue on primary key?如何在主键上绑定值?
【发布时间】:2011-09-19 11:09:21
【问题描述】:

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

主键值来自数据库结果。

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

【问题讨论】:

    标签: php mysql pdo bindvalue


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      考虑到开销不是很大,所以使用它。您可以使用 ? 表示法使其更短。

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2021-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多