gpt4 book ai didi

php - PDO 准备()仅在一台服务器上失败

转载 作者:行者123 更新时间:2023-11-29 17:48:22 28 4
gpt4 key购买 nike

以下代码:

class Database {
(...)
public function query($query){
$this->stmt = $this->dbh->prepare($query);
}
(...)
}

我的在线服务器出现故障并出现以下错误:

2018/04/02 15:16:14 [error] 3472#3472: *3 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to a member function prepare() on null in /var/www/html/example.com/public_html/includes/pdodatabaseconnect.php:38
Stack trace:
#0 /var/www/html/example.com/public_html/index.php(52): Database->query('SELECT * FROM s...')
#1 {main}
thrown in /var/www/html/example.com/public_html/includes/pdodatabaseconnect.php on line 38" while reading response header from upstream, client: XX.XXX.XXX.XXX, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "example.com"

而完全相同的代码(镜像)在我的本地服务器上运行良好。我看不到 PHP 版本中引入的任何 PDO 差异会产生这种不同的结果。网上有一些修改类似的类来解决问题的建议,但这似乎是用大锤敲钉子——代码在具有镜像文件的不同服务器上运行,在另一台运行不同项目但完全相同的数据库类文件的服务器上运行。

当涉及的版本差异很小并且我无法发现任何会反射(reflect)我所看到的错误的更改时,我不确定服务器配置可能会对执行代码产生什么差异。

服务器:

本地(MAMP)

PHP:7.2.1/MySQL:5.6.38/nginx:1.13.2

在线(Ubuntu 16.04)

PHP:7.0.28/MySQL:5.7.21/nginx:1.10.3

最佳答案

虽然这是一件很容易被忽视的愚蠢的事情,但这个错误在指出数据库密码不正确的问题方面相当迟钝。我希望出现身份验证错误。

事实上,我复制了所有文件和配置,这意味着我太自信这些站点是相同的。然而,我已经建立了一个数据库,每个数据库都有不同的用户帐户。

关于php - PDO 准备()仅在一台服务器上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49614921/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com