我正在运行从数据库服务器获取数据的代码,一切都在本地工作正常。但是当我把它推到网上时,它已不再适用了。
我想我知道问题的来源。这是我在本地获得的数据:
object(stdClass)#451 (14) {
["matter_created_actionstep_c"]=>
string(1) "1"
["trust_receipt_sent_c"]=>
string(1) "1"
["scope_complete_c"]=>
string(1) "0"
["transferred_trust_to_current_c"]=>
string(1) "0"
}
当我在服务器上推送它时,我得到的结果是:
object(stdClass)#451 (14) {
["matter_created_actionstep_c"]=>
int(1)
["trust_receipt_sent_c"]=>
int(1)
["scope_complete_c"]=>
int(0)
["transferred_trust_to_current_c"]=>
int(0)
}
您是否知道任何会导致此排版更改的apache配置?
唯一不同的项目文件是conf文件:
本地:
DB_HOST=1.1.1.1
在服务器上:
DB_HOST=localhost
提前致谢。
答案 0 :(得分:2)
这可能是由很多问题引起的。也许是不同的PHP版本,也许数据来自数据库,数据库驱动程序的版本不同,......
我想说应用程序是罪魁祸首。 PHP是无类型的,这意味着在大多数情况下,没有人关心变量的实际类型。在您的情况下,只要行为相同(例如2
等于"2"
),几乎没有人关心价值是2==2
还是2=="2"
。如果应用程序在某些变量中需要某些类型,则应确保变量包含这些类型!这不是这种情况。
检查应用程序以及将值写入对象的代码部分。这部分代码应该在将值放入变量之前将值转换为所需类型。
然而(或者如果对象来自其他地方),使代码对类型更加宽容可能是有意义的,即只要不必要就不依赖于特殊类型。根据我的经验,只有极少数情况下变量的类型才真正重要。