我有一个使用Zend框架构建的网站。
此查询:
$select
->from(table, new Zend_Db_Expr('COUNT(1) AS zend_paginator_row_count'))
->where("`resource_type` IS NULL)
在我的本地服务器中返回一个填充的Zend_Db_Select对象,但不在我的托管服务器中。 而不是那样,我需要将查询修改为:
$select
->from(table, new Zend_Db_Expr('COUNT(1) AS zend_paginator_row_count'))
->where("`resource_type` = '')
为什么会发生这种情况有一个原因或解释?显然,数据在两个服务器中以相同的方式插入。
谢谢, 卢卡斯。
答案 0 :(得分:2)
毕竟,数据以不同的方式插入,或者表定义不同。在开发服务器中,您的字段可能是可空的和/或没有默认值。在托管服务器中,字段不同。它可能不可为空或默认值为''
,这会导致新记录自动包含空字符串而不是NULL
。
请注意,在Oracle NULL
和''
中是相同的,但在MySQL中它们是两个不同的东西。因此,在您的情况下,不一致性不在运算符中,而是在数据中。