gpt4 book ai didi

php - 给 mysqld_stmt_execute 的未知准备语句处理程序

转载 作者:行者123 更新时间:2023-11-30 21:46:16 28 4
gpt4 key购买 nike

没有返回结果的准备语句有问题。检查 MySql 的一般查询日志后,我可以看到连接的位置,但似乎从未执行过查询。

添加mysqli_report(MYSQLI_REPORT_ALL)后,返回如下错误信息:

Unknown prepared statement handler (4) given to mysqld_stmt_execute

下面是执行预处理语句的代码:

$something_in = 'a-string-of-text';

if($stmt = $this->prepare("SELECT first, last, phone FROM people WHERE something=? ORDER BY last ASC")){

try{

if (!$stmt->bind_param('s', $something_in)) {
die('bind_param() failed: ' . htmlspecialchars($stmt->error));
}

$stmt->execute();
$stmt->bind_result($first, $last, $something, $phone);

while($stmt->fetch()){

$returnArray[] = array(
'first_name' => $first,
'last_name' => $last,
'something' => $something,
'phone' => $phone
);

}

$stmt->free_result();
$stmt->close();

return $returnArray; // we make it to here with a blank array instead of expected results

} catch (Exception $ex) {

return $ex->getMessage();

}

}

有没有其他人遇到过这个问题?这似乎很奇怪。

MySQL 版本:5.6

PHP 版本:7

另一个有用的信息是我们正在使用 netscaler,它充当我们的应用程序服务器和数据库服务器之间的代理。我倾向于相信这可能是发生挂断的地方。

编辑

确认这与我们的 netscaler 代理有关,因为将应用服务器直接连接到数据库服务器可以解决问题。确定原因后将发布解决方案。

最佳答案

尚未确定针对这种特殊边缘情况的解决方案。然而,从 mysqli 转移到使用 php 的 PDO 库已经解决了短期的困境。

关于php - 给 mysqld_stmt_execute 的未知准备语句处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49324911/

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