我在这个问题上停留了一段时间,正在寻找有用的建议。
$resultset = $connection->multi_query($sql);
pseudo:
IF $resultset > 0 (--> if the sql query returned at least one result) {
// do something
}
现在问题出在伪部件上,我尝试执行以下操作:
if($resultset > 0) // takes no effect
if($resultset->num_rows > 0) // Notice: Trying to get property of non-object
我必须使用multi_query,所以mysqli_query / mysqli_fetch_array不是解决方案
感谢您的提示。...
答案 0 :(得分:3)
请尝试:
if($connection->multi_query($sql))
{
//sample query taken from php manual, see link below
do {
/* store first result set */
if ($result = $connection->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* print divider */
if ($connection->more_results()) {
printf("-----------------\n");
}
} while ($connection->next_result());
}
else
{
//handle error
echo mysqli_error ( $connection );
}
如果您查看多重查询(here)的文档,您将看到该函数返回一个boolean
。
源代码也取自php manual。
答案 1 :(得分:2)
multi_query()
返回一个布尔值,该布尔值指示第一个查询是否成功,但不返回mysqli_result
对象。
您必须调用store_result()
方法以获取第一个结果集。
$resultset = $connection->store_result();
要获取后续结果集,请使用more_results()
和next_result()
。
请参阅documentation中的示例。