我想知道 PHP PDO 中强制转换变量和常量 PDO::PARAM_* 之间的真正区别
示例:
$stmt->bindValue(':name', $name, PDO::PARAM_INT);
或者
$stmt->bindValue(':name', (int)$name);
最佳答案
前一种方法(使用 PDO::PARAM_*
)意味着如果 $name
与您指定的类型不匹配(在本例中, integer
类型)。它在绑定(bind)之前验证类型。
后者(不提供第三个参数)没有这样的验证,因此如果您没有将 $name
转换为整数,查询仍会执行。
关于php - PDO::PARAM_* 与强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8980062/