Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp和Mysql Tinyint(1)返回Null_Mysql_Cakephp_Tinyint - Fatal编程技术网

Cakephp和Mysql Tinyint(1)返回Null

Cakephp和Mysql Tinyint(1)返回Null,mysql,cakephp,tinyint,Mysql,Cakephp,Tinyint,这就是我的问题 我的数据库中有一个名为maillist的字段,类型为tinyint1。使用phpmyadmin i将值0和1插入到某些字段中。 当我从数据库中读取时,这里是返回的数组 Array ( [User] => Array ( [maillist] => ) ) 其中,邮件列表应为0或1,因为在我的数据库中,邮件列表上的所有字段都已填充。 因此,我决定将字段上的类型更改为tinyint4,并修复了返回数组的

这就是我的问题

我的数据库中有一个名为maillist的字段,类型为tinyint1。使用phpmyadmin i将值0和1插入到某些字段中。 当我从数据库中读取时,这里是返回的数组

Array
(
    [User] => Array
        (
            [maillist] => 
        )

)
其中,邮件列表应为0或1,因为在我的数据库中,邮件列表上的所有字段都已填充。 因此,我决定将字段上的类型更改为tinyint4,并修复了返回数组的问题

Array
(
    [User] => Array
        (
            [maillist] => 0
        )

)
请注意,我没有更改任何值,只是将类型从tinyint1更改为tinyint4。 虽然问题已经解决,但我想知道是什么导致了这种行为?我是否对使用cakephp检索数据缺乏了解?我错过什么重要的事了吗?或者这可能是一个bug。

尝试var_dump$array而不是pr$array

pr不显示变量类型,也不会显示布尔值,因为不存在真或假字符


mysql过去使用tinyint1模拟位字段。当mysql最终添加位字段时,一些mysql驱动程序被新类型搞糊涂了,只是将其值设为null,并通过专门检查tinyint1来实现。tinyint4和tinyint1之间的差异并不是真正的开销,所以我将避免混乱并使用tinyint4,感谢您的回复!马文:真是个坏主意。一个将被解释为布尔值,另一个tinyint4将是整数。因此,请不要试图为一个不存在的问题找到自己的错误解决方案。我不是将其解释为布尔值,以下是我所做的“value”=>$user['user']['maillist']只是为了设置单选按钮上的复选框,但我会记住这一点。tinyint1=boolean=2个确定状态。如果要有两个以上的状态枚举,请列出。。。然后应该使用tinyint2/3或intx。只是为了澄清。问题不在pr中,我只是用它来查看返回的值。我在做echo$user['user']['maillist']时一无所获。echo与pr/print\r相同。您需要使用var_dump来查看布尔类型,尤其是false。查看粘贴。或者在cake>=2.x中使用debug,这将正确显示false/true。'maillist'=>boolean false great^^^我明白你的意思了^^并且看到了我的错误!我希望值为1或0以设置单选按钮的值!谢谢你的回复。