PHP:execute($ parameters)和bindParam()之间的区别......等等

时间:2015-02-12 23:02:14

标签: php pdo

我正在阅读http://de.php.net/manual/en/pdostatement.execute.php,但对$sth->bindParam(...)$sth->execute($parameters)

之间的区别感到困惑

事后看来,它们看起来一样。手册也从不具体。为什么或何时使用PDO::PARAM_INTPDO::PARAM_STR

最后,在我的代码中,当查询为"为空时,我的代码不会返回FALSE。

$sql = 'SELECT `id` FROM `some WORKING sql Statement` WHERE `id` = :id';
$query  = self::$dbc->prepare( $sql );
$SHT->bindParam(':uri', $id, PDO::PARAM_INT);
$result = $SHT->execute(); //Row Count not working
if($result) {
    //TRUE
    ...code
}
else {
    //FALSE
    ...code
}

1 个答案:

答案 0 :(得分:2)

bindParam()以引用方式绑定。这意味着如果您首先执行准备好的语句,然后更改变量的值然后再次执行,那么将使用更新的值运行查询。

带参数的

execute():你只提供参数,但没有更多的事情发生。

默认情况下,所有占位符都用引号括起来。如果您需要它而没有引号,您可以使用PDO::PARAM_INT明确告诉PDO您希望它是一个整数。

execute()的返回是一个语句句柄。如果您的查询成功执行,您将获得一个语句句柄。使用rowCount()检查是否有任何行。