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

PHP:execute($parameters)和bindParam()之间的区别……等等,php,pdo,Php,Pdo,我正在阅读,但对$sth->bindParam(…)和$sth->execute($parameters) 事后看来,他们看起来是一样的。此外,手册从来没有具体说明。为什么或何时使用PDO::PARAM_INT和PDO::PARAM_STR 最后,当查询为“空”时,我的代码不会返回FALSE bindParam()通过引用绑定。这意味着,如果您首先执行准备好的语句,然后更改变量的值,然后再次执行,那么查询将使用更新的值运行 execute() 默认情况下,所有占位符都用引号括起来。如果您需要不带

我正在阅读,但对
$sth->bindParam(…)
$sth->execute($parameters)

事后看来,他们看起来是一样的。此外,手册从来没有具体说明。为什么或何时使用
PDO::PARAM_INT
PDO::PARAM_STR

最后,当查询为“空”时,我的代码不会返回FALSE

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

execute()

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

execute()
的返回是一个语句句柄。如果查询成功执行,您将获得一个语句句柄。使用
rowCount()
$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
}