我使用PHP-FPM和MysqL运行Nginx服务器。 PHP已经安装了MysqL和MysqLi扩展,由PHPinfo()确认。 我上传了我在本地主机上完美工作的脚本,当我尝试加载页面时遇到了500错误。 我的Nginx日志显示这个:
2012/01/19 22:01:27 [error] 3393#0: *14 FastCGI sent in stderr: "PHP Warning: MysqLi::prepare(): Couldn't fetch MysqLi in /var/www/mydomain.com/chat/index.PHP on line 12 PHP Fatal error: Call to a member function execute() on a non-object in /var/www/mydomain.com/chat/index.PHP on line 13" while reading response header from upstream,client: 82.32.181.151,server: mydomain.com,request: "GET /chat/ HTTP/1.1",upstream: "fastcgi://127.0.0.1:9000",host: "mydomain.com"
我用mydomain.comreplace了我的实际域。 在index.PHP的第12行,我有这样的:
$stmt = $MysqLi->prepare('SELECT r_id,name,room_pass,max_users FROM `rooms` ORDER BY name ASC');
谷歌之后,我发现了一些原因。 一个是我过早地closures了我的数据库连接,不是这样。 另一个是我混合了OOP和MysqLi函数的调用,这也不是问题。 另外,我的数据库连接信息是正确的。
所以,我很难过
编译PHP 7在wordpress中缺lessMysqL扩展
使用PowerShell进行MysqL转储
MysqL连接到VLAN之外的外部/远程服务器
MysqL Windows服务将无法启动
Docker由多个子网站组成
在Windows XP上创build虚拟LAMP机器最简单的方法是什么?
MysqL服务不会在Windows 2008服务器r1上启动
PHPMyAdmin无法从Linux客户端连接到Windows 7上的远程服务器
我假设你的第13行实际上是这样的:
$stmt->execute();
这意味着你的准备调用失败了,并返回一个布尔值FALSE到$stmt 。 由于布尔型的假不是一个对象,你不能调用它的方法,因此错误。
尝试制作代码:
$stmt = $MysqLi->prepare(...); if ($stmt === FALSE) { die($MysqLi->error); } $stmt->execute();
问题是在你的生产线上13.你可能会做类似的事情
$stmt->execute();
但是现在你要求包含一个方法的变量不是一个对象。 可能是您的原因的问题是:
你的数据库连接不起作用,所以你的$MysqLi->prepare失败。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。