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

PHP: Diffetence between execute($parameters) and bindParam() ...and more

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

之间的区别感到困惑

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

最后,当查询为 "empty".

时,我的代码不会 return 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
}

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

execute() 带参数:您只需提供参数,但不会发生任何其他事情。

默认情况下,所有占位符都用引号引起来。如果您需要不带引号的它,您可以使用 PDO::PARAM_INT 明确告诉 PDO 您想要它作为整数。

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