当我这样做时:
$q = 'insert into movies values("lion king"); select * from movies;';
$result = $db->query($q);
echo mysqli_num_rows($result);
它说$ result是boolean,而不是mysqli结果。 如果我像这样检查$ result:
if(!$result) echo 'fail';
输出'fail'。
mysql一次无法处理多个查询吗?我该如何解决这个问题?
答案 0 :(得分:7)
您需要使用mysqli::multi_query。
答案 1 :(得分:3)
$db->query('insert into movies values("lion king");');
$db->query('select * from movies;');
答案 2 :(得分:0)
$q = 'insert into movies values("lion king")';
$result = $db->query($q);
$q = 'select * from movies';
$result = $db->query($q);
echo mysqli_num_rows($result);
答案 3 :(得分:0)
您可以使用难以使用的multi_query,但通常不会,您一次只能使用一个查询。
答案 4 :(得分:0)
不要混淆在MySQL命令行界面中编写“查询”的方式与使用API的方式。
MySQL命令只是将API包装成更像shell的东西。
使用API,您实际上一次只能执行一个查询。当然,API 的客户端可以做一些聪明的事情并解释分号,为你分成多个查询,但这对于足够多的人来说可能没那么有用。