Php Mysqli多查询错误

Php Mysqli多查询错误,php,mysqli,Php,Mysqli,我需要一次执行两个或多个查询,一个接一个地获取它们 然后,我需要在每一个参数中绑定param和bind result 我正试着这样做,但还是出错了 $query=" SELECT `date`, `ip`, AVG(`value`) FROM `stats`.`stats` WHERE `uid`=? GROUP BY `date`, `ip`; "; $query.=" SELECT `category`, `ip`, AVG(`value`) FROM `stats`.`sta

我需要一次执行两个或多个查询,一个接一个地获取它们

然后,我需要在每一个参数中绑定param和bind result

我正试着这样做,但还是出错了

$query="
SELECT 
`date`, `ip`, AVG(`value`)
FROM `stats`.`stats`    
WHERE `uid`=?
GROUP BY `date`, `ip`;
";

$query.="
SELECT 
`category`, `ip`, AVG(`value`)
FROM `stats`.`stats`    
WHERE `uid`=?
GROUP BY `category`, `ip`;
";

$prepare = mysqli_multi_query($connection, $query);
mysqli_stmt_bind_param($prepare, 'ss', $uid,$uid);
mysqli_stmt_execute($prepare) or trigger_error(mysqli_error($connection), E_USER_ERROR);
然后在html部分,我需要一个接一个地获取这些结果

//fetch first query result
while (mysqli_stmt_fetch($prepare)):
mysqli_stmt_store_result($prepare);
mysqli_stmt_bind_result($prepare, $date,$ip,$value);
mysqli_free_result($result);
endwhile;

//fetch second query result
while (mysqli_next_result($prepare)):
while (mysqli_stmt_fetch($prepare));
mysqli_stmt_store_result($prepare);
mysqli_stmt_bind_result($prepare, $category,$ip,$value);
mysqli_free_result($result);
endwhile;
但它不工作,显示多个错误

 Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in
 Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in
 Fatal error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? GROUP BY `date`,`ip` ) ..
请查看并建议任何可能的方法

谢谢

我需要一次执行两个或多个查询

你没有


因此,您应该对查询使用常规的prepare/execute,一个接一个地运行它们。

由于bind_param通过引用传递,因此您需要两个不同的变量,即使值相同<代码>mysqli\u stmt\u bind\u参数($prepare,$ss',$uid,$someotheruid)这两条语句看起来就像您可以将它们与
UNION ALL
组合成一条语句,或者将
WHERE
子句修改为
WHERE uid IN(?,)
。我认为不需要多个查询。您的上一个循环没有要循环的主体,因此它会消耗所有数据,直到在没有剩余数据时返回false。对于警告,您的查询是错误的,回显查询,并在此处显示。@frosty查询作为单独的查询工作是正确的。然后第二个查询显示错误,如果第一个错误的存储结果消失,但第二个查询的结果为first,则应修复错误,并且不应混合两个查询的数据。如果执行一个查询或第二个查询而不执行其他查询,则查询中没有错误,这就是为什么我要使用multi_query()而不是multi prepare()的原因。如果忘了multi_query()你会帮自己一个忙