php - 不同的服务器,不同的数据类型,具有完全相同的代码

标签 php mysql apache casting

我正在运行从数据库服务器获取数据的代码,本地一切正常。但是当我把它推到网上时,它就不再起作用了。

我想我知道问题出在哪里。这是我在本地获取的数据:

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/

相关文章:

php - UPDATE 查询中没有更新一列

apache - 调试 .htaccess 重写规则的技巧

php - 使用 UPPER 和 COUNT 在 PHP 中中断 MySQL 查询

php - 在 symfony 中使用参数执行 sql 请求时出现语法错误?

MySQL - 最后按完全匹配排序

php - PHP处理脚本包含而不抑制其错误和警告

javascript - 如何将html显示为文本?

php - 如何选择MAX(updateTag)

php - 如何将帖子从 wordpress 拉到不同主机上的其他非 wordpress 站点?

php - 如何在论坛页面中监控用户