gpt4 book ai didi

PHP MySQLI::bind_result 问题

转载 作者:行者123 更新时间:2023-11-29 00:27:40 25 4
gpt4 key购买 nike

我在尝试绑定(bind)我的结果时遇到问题。 PHP 不断输出以下错误

Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement in /var/www/public_html/test.php on line 38

现在,在任何人开始引用其他链接之前,我已经在 stackoverflow 上查找并在 Google 上进行了一些搜索。我找到的所有示例,包括 PHP.net,都说这是正确的...但显然不是。

这是我的:

function __verify($digit4, $woid) {
$query = $this->mysql->prepare("SELECT * FROM pc_wo wo LEFT JOIN pc_owner owner ON owner.pcid=wo.pcid WHERE wo.woid=? AND SUBSTRING(owner.pcphone, -4)=?");
$query->bind_param("is",$woid,$digit4);
if ( !$query->execute() ) return false;
$query->bind_result($resp);
$query->fetch();

var_dump($resp);
return true;
}

编辑我想你不能将 bind_result 用于通配符选择 (*)...那么我根据 mysqli_stmt 使用什么来获取整个数组?

谢谢!

最佳答案

我的解决方案是使用伪方法:

private function __compile($handler)
{
$meta = $handler->result_metadata();
while ($field = $meta->fetch_field()) {
$params[] = &$row[$field->name];
}

call_user_func_array(array($handler, 'bind_result'), $params);

while ($handler->fetch()) {
foreach($row as $key => $val) {
$x[$key] = $val;
}
$results[] = $x;
}

return $results;
}

这可能是一个解决方案,但为什么 MySQLi 不包含通配符语句的准备语句?

关于PHP MySQLI::bind_result 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18195179/

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