gpt4 book ai didi

php - MySQL 准备语句生成内部服务器错误

转载 作者:行者123 更新时间:2023-11-29 06:08:46 26 4
gpt4 key购买 nike

我正在使用 PHP 和 MySQL。我有以下 PHP 代码:

$stmt = $this->db_connect()->prepare(
"SELECT P.`pool_id`, P.`pool_name`, PL.`player_id`, PL.`alias`, PP.`paid` "
."FROM `pool` AS P, `player_pool` AS PP, `players` AS PL "
."WHERE P.`sponsor` = ? "
."AND P.`pool_id` = PP.`pool_id` "
."AND PP.`player_id` = PL.`player_id` "
."ORDER BY P.`pool_name`, PL.`alias`;");

echo "validated_user_id=".$_SESSION['validated_user_id'].PHP_EOL;
echo "stmt=".($stmt == null);
$stmt->bind_param("i", $_SESSION['validated_user_id']);

它不断返回 500 Internal Server Error。日志显示 [23-Sep-2016 00:05:06] PHP fatal error :调用非对象上的成员函数 bind_param()。 validated_user_id 具有有效值,但 $stmt 变量为空。

起初我以为我使用的是保留字,所以我转义了所有内容 - 但没有成功。我有许多其他看起来非常相似但工作得很好的数据库查询...

真正让我恼火的是,完全相同的代码在我的本地工作区上运行良好——这个错误只出现在主机上。事情是我不知道要寻找什么来找出原因 - 请帮忙。

发现问题 - 不在主机上的其中一个列的名称略有不同。

最佳答案

您的 prepare() 函数似乎返回 null。这可能是由于 SQL 中的错误而发生的,但如果它在您的本地计算机上运行,​​则很可能是数据库连接出现问题。

检查您的 $this->db_connect() 函数是否报告连接错误。将 db_connect() 调用与 prepare() 调用分开可能有助于找出根本原因:

$connection = $this->db_connect();
var_dump($connection);
$stmt = $connection->prepare(...);

关于php - MySQL 准备语句生成内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39653752/

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