我正在运行从数据库服务器获取数据的代码,本地一切正常。但是当我把它推到网上时,它就不再起作用了。
我想我知道问题出在哪里。这是我在本地获取的数据:
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
提前致谢。
最佳答案
这可能是由很多问题造成的。也许PHP版本不同,也许数据来自数据库并且数据库驱动程序的版本不同,...
我想说应用程序是罪魁祸首。 PHP 是无类型的,这意味着在大多数情况下没有人关心变量的实际类型。在您的情况下,几乎没有人关心该值是 2
还是 "2"
只要它的行为相同(例如 2==2
等于2==“2”
)。如果应用程序需要某些变量中的某些类型,则应确保变量包含这些类型!这里的情况并非如此。
检查应用程序以及将值写入对象的代码部分。这部分代码应该先将值转换为所需的类型,然后再将其放入变量中。
尽管如此(或者如果对象来自其他地方),使代码对类型更加宽容可能是有意义的,即只要没有必要就不要依赖特殊类型。根据我的经验,只有少数情况下变量类型确实很重要。关于php - 不同的服务器,不同的数据类型,具有完全相同的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31826229/