Как bindValue на первичном ключе? - PullRequest
0 голосов
/ 21 июня 2011

Рекомендуется ли 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 ]

2 голосов
/ 21 июня 2011

Это скорее личное предпочтение. В ситуациях, подобных описанным выше, когда вы, что тип данных результата является целочисленным, как PK или другое значение типа int, я никогда не делаю bindValue, но напрямую объединяю, например:

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

Просто потому, что он короче и, вероятно, немного быстрее. Но не беспокойтесь о таких преждевременных микрооптимизациях, если вы всегда используете bindValue, это никак не повлияет на вашу производительность. Однако, если вам кажется, что его объединение выглядит чище, в этих ситуациях нет недостатков в безопасности, так что сделайте это.

0 голосов
/ 21 июня 2011

Учитывая, что это не слишком накладные расходы, используйте их.Вы можете сделать его короче с помощью обозначения ?.

...