PHP:execute($parameters)和bindParam()之间的差异..等等


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

我正在阅读http://de.php.net/manual/en/pdostatement.execute.php但混淆了CCD_ 1和CCD_

事后看来,它们看起来是一样的。此外,该手册从未具体说明。为什么或何时使用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
}

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

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

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

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