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/

相关文章:

c - 为什么允许从 int 转换为 void *?

php - Mac os Sierra php-imap cli 工作缓慢

php - 如何解决 laravel eloquent 中与 sql_mode=only_full_group_by 不兼容的问题?

haskell - 类型同义词究竟是如何工作的?

c++ - 模板函数 - 类型检查错误 - C++

javascript - 在 typescript 中,拥有像这样的对象属性 "{ [x: string]: any }"意味着什么?

.net - 从 HttpResponseMessage 中提取内容

php - 关于如何在 linux 中与另一个 shell 交互使用 shell 的一些问题

php - 如何比较mysql和php中的两个表?

c# - C# 中的动态转换