首页 > 解决方案 > 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)  
 ],

标签: phpmysql

解决方案


您的枚举由两个字符串'true''false'.

但是在代码中,您传递布尔值truefalse然后包含转换魔法。

因此,您也应该将其存储为字符串:

'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


推荐阅读