1

我一直在敦促了解使用 bindValue 和 execute(array()) thing-y 之间的区别。

好吧,假设我有这个代码示例

$query = $db->prepare("SELECT embedded_page.uid FROM embedded_page WHERE fbp_id = :fbp_id");
$query->bindValue(":fbp_id", $fbp_id, PDO::PARAM_INT);
$query->execute();

这个有什么区别?

$query = $db->prepare('SELECT `embedded_page`.`uid`, `embedded_page`.`ticket_id`, `embedded_page`.`event_table` FROM `embedded_page` WHERE `fbp_id` = ?');
$query->execute(array($fbp_id));

不管节省一行代码。

帮助将不胜感激。

4

1 回答 1

0

It is already self explained with your example, That bindValue validate input data type in form of specially defined PDO::PARAM_INT or similar. While in second example no such condition in place as prepare using ?. (Some internal validation may be done by engine assuming for string, int and float types.). Also in case of more variables as place holders in query first form is easier to understand.

于 2013-03-24T04:51:05.843 回答