gpt4 book ai didi

mysql - 无法获取 mysqli

转载 作者:行者123 更新时间:2023-11-29 01:09:08 24 4
gpt4 key购买 nike

我正在使用 PHP-FPM 和 MySQL 运行 nginx 服务器。 phpinfo() 确认 PHP 已安装 MySQL 和 MySQLi 扩展.我上传了在本地主机上完美运行的脚本,当我尝试加载页面时出现 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.com .在 index.php 的第 12 行,我有这个:
$stmt = $mysqli->prepare('SELECT r_id, name, room_pass, max_users FROM `rooms` ORDER BY name ASC');
谷歌搜索后,我发现了几个原因。一是我过早地关闭了我的数据库连接,不是这样。另一个是我混合了 OOP 和功能性 MySQLi 调用,这也不是问题。另外,我的数据库连接信息是正确的。
所以,我很难过。

最佳答案

我假设您的第 13 行实际上是这样的:

$stmt->execute();

这意味着您的准备调用失败并返回 bool 值 FALSE 到 $stmt .由于 bool 值 false 不是对象,因此您不能在其上调用方法,因此会出现错误。

尝试编写代码:
$stmt = $mysqli->prepare(...);
if ($stmt === FALSE) {
die($mysqli->error);
}
$stmt->execute();

关于mysql - 无法获取 mysqli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933331/

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