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_INT
和 PDO::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()
检查是否返回任何行。
我正在阅读 http://de.php.net/manual/en/pdostatement.execute.php,但对 $sth->bindParam(...)
和 $sth->execute($parameters)
事后看来,它们看起来是一样的。手册也从不具体。为什么或何时使用 PDO::PARAM_INT
和 PDO::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()
检查是否返回任何行。