php - PDO::PARAM_* 与强制转换

标签 php types casting pdo

我想知道 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/

相关文章:

java - 序列化 PHP => 反序列化 JAVA/Serialize for php in string format

php - wordpress 提取媒体 url

scala - Scala 中类型安全的完美二叉树

PHP CSV 重复值

php - 为什么会出现 PHP 核心函数有空 block ?

c++ - 安全地在 unsigned 和 signed int 之间转换

java - 如何将反射字段类型转换为另一个对象?

java - 为什么 Java 隐式(不进行转换)将 `long` 转换为 `float` ?

types - 字段计算为值 (0.0),不是 SHORT-FLOAT 类型

angular - forkjoin 没有返回结果