这个问题在这里已经有了答案:
mysqli_fetch_assoc()需要参数/调用成员函数bind_param()时出错。如何获得实际的mysql错误并修复它(1个答案)
两年前关门了。
<?php include("db.php");?>
<?php
$recno=$_GET['recno'];
$con->query('SET @sql = NULL');
$con->query("SELECT\n"
. " GROUP_CONCAT(DISTINCT\n"
. " CONCAT(\n"
. " \'MAX(IF(parid = \'\'\',\n"
. " parid,\n"
. " \'\'\', par_values, 0)) AS \'\'\',\n"
. " parid,\'\'\'\'\n"
. " )\n"
. " ) INTO @sql\n"
. "FROM\n"
. " est_paaram_value\n"
. "WHERE recno=\'132\'");
$con->query("SET @sql = CONCAT(\'SELECT recno,year,qtr, \', @sql, \' FROM est_paaram_value WHERE recno='132' GROUP BY year,qtr\')");
$con->query("PREPARE stmt FROM @sql");
$res = $con->query("EXECUTE stmt");
var_dump($res->fetch_all(MYSQLI_ASSOC));
?>
( ! ) 致命错误:在c:\wamp\www\sme\querying.php的第46行对boolean上的成员函数fetch\u all()进行调用
没有显示结果。
1条答案
按热度按时间gfttwv5a1#
正如u\u mulder和jeff所提到的,在双引号字符串中不需要转义单引号,而且还有太多的引号。
查询中似乎有一个错误,使
$con->query("EXECUTE stmt");
失败并返回false,然后将其分配给$res。清理查询,删除所有不必要的单引号和转义符,并在执行失败时添加输出,如下所示:
注意:上面显示的代码可能仍然不起作用,因为没有关于数据库模式或实际要查询的内容的信息。但是它应该提供有关查询失败的原因的信息,以及错误代码和信息。