微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法获取mysqli

我使用PHP-FPM和MysqL运行Nginx服务器。 PHP已经安装了MysqLMysqLi扩展,由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函数调用,这也不是问题。 另外,我的数据库连接信息是正确的。

所以,我很难过

如何使我的本地MysqL数据库从不同的机器可访问?

连续查询将不会运行,除非我closuresMysqLi连接

编译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();

但是现在你要求包含一个方法的变量不是一个对象。 可能是您的原因的问题是:

你输入$stmt错误,所以这是一个未初始化的变种

你的查询错误的,所以你错了,而不是准备好的声明

你的数据库连接不起作用,所以你的$MysqLi->prepare失败。

找出哪一个是通过使用MysqLi的错误函数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐