如何使用准备好的语句将布尔值放入 mysql 数据库?

Posted

技术标签:

【中文标题】如何使用准备好的语句将布尔值放入 mysql 数据库?【英文标题】:How do I put booleans into a mysql database with prepared statements? 【发布时间】:2012-06-26 06:24:13 【问题描述】:

根据php manual,mysqli->bind_param的四种变量类型是

    整数, 双倍, 字符串和 斑点。

插入布尔值的最佳方法是什么?

【问题讨论】:

【参考方案1】:

无论如何,MySQL 并不真正存储布尔值,这是一个技巧。

实际格式是TINYINT,我猜pdo是integer

您必须将真/假转换为 1/0,例如 intval

【讨论】:

是否可以将布尔 php 值直接放入准备好的语句中,还是必须转换?例如。 $test = false - 我可以将 test 作为 TINYINT 插入还是需要先将 $test 转换为 int? 当您尝试将布尔值放入字符串时,PHP 会将布尔值转换为空值,因此它不会按预期执行 1/0。只需在准备调用中执行 $booleanvar?1:0 即可。

以上是关于如何使用准备好的语句将布尔值放入 mysql 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

SQL CE select语句中的反向布尔(位)值

使用准备好的语句将多个带前缀的表移动到存档数据库,为啥这个 MySQL 语句无效?

将“Execute statement”结果放入MySQL的变量中

java - 如何在java中为mysql的JSON数据类型使用准备好的语句?

使用 MySql、PHP 和 ADODB 在准备好的语句中参数化 IN 子句

如何确定从我的 html 表单获取的输入值的数据类型,以便我可以使用它们在准备好的语句中绑定参数