0

主キーに 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);
4

2 に答える 2

2

それは個人的な好みです。上記のような状況で、結果のデータ型が PK やその他の int 値のような整数である場合、bindValue を実行せずに直接連結します。たとえば、次のようになります。

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

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

短くて、おそらく少し速いからです。しかし、そのような時期尚早のマイクロ最適化を気にしないでください。常に bindValue を使用する習慣があれば、パフォーマンスにはまったく影響しません。ただし、連結した方がきれいに見える場合は、そのような状況ではセキュリティ上の欠陥はないので、連結してください。

于 2011-06-21T12:22:18.307 に答える
0

それほどオーバーヘッドではないことを考慮して、はい使用してください。?表記で短くすることができます。

于 2011-06-21T11:49:58.203 に答える