php - php中的真/假问题
问题描述
我ENUM ('true','false')
在数据库中使用 testMode。如果 testModetrue
工作正常,但是当我将其切换为 false 时,它true
不会切换false
。我做错了什么或者我的错误是什么任何人都可以告诉我吗?
'stripe' => [
'enable' => $Status ? true : false,
'testMode' => $Mode ? true : false, //test mode or live mode (boolean, true or false)
],
解决方案
您的枚举由两个字符串'true'
和'false'
.
但是在代码中,您传递布尔值true
,false
然后包含转换魔法。
因此,您也应该将其存储为字符串:
'stripe' => [
'enable' => $Status ? 'true' : 'false',
'testMode' => $Mode ? 'true' : 'false', //test mode or live mode (boolean, true or false)
],
我不建议将 Enum 用于此类真/假值,因为您稍后会遇到问题。最常见的做法是使用它TINYINT(1)
并传递布尔值true
/false
值 - 它会节省数据库空间并且在您尝试执行时不会带来类型转换错误$row['testMode'] == true
推荐阅读
- excel - 使用 VBA 从已排序的列中选择最高/最低 n 值
- python - 如何根据四个端点获得四个坐标
- java - Libgdx 联系人监听器 - 联系人不能双向工作
- c - 从线程内部终止线程的最佳方式或任何其他安全方式
- c++ - 为什么目录上的 std::filesystem::file_size 留给实现?
- python - 如何计算 JSON 值
- rust - 为什么 Rust RwLock 在 fork 中表现异常?
- r - R ggrides 包绘制平均线(NOT MEDIAN)
- c - C-从二进制文件中读取字符串不起作用
- c# - 如何在 PropertyGrid 中显示文件名列表