bindParam当您只想将变量引用绑定到查询中的一个参数时,您可能会发现它已使用,但可能仍需要对其进行一些操作,并且只希望在查询执行时计算出变量的值。它还允许您执行更复杂的操作,例如将参数绑定到存储过程调用,并将返回的值更新为绑定变量。
例如
$col1 = 'some_value';$pdo->bindParam(':col1', $col1);$col1 = 'some_other_value';$pdo->execute(); // would use 'some_other_value' for ':col1' parameterbindValue并传递一个数组,使其
execute行为与参数值在该点被固定并相应执行SQL时几乎相同。
按照上面的相同示例,但使用
bindValue
$col1 = 'some_value';$pdo->bindValue(':col1', $col1);$col1 = 'some_other_value';$pdo->execute(); // would use 'some_value' for ':col1' parameter当直接传递值时,
execute所有值都被视为字符串(即使提供了整数值)。因此,如果您需要强制执行数据类型,则应始终使用
bindValue或
bindParam。
我认为您可能会发现,
bind*使用更多的
execute(array)代码来更好地编码,以便在参数声明中显式定义数据类型。



