PHP和MYSQLI,函数mysqli_multi_query

时间:2018-05-28 17:47:09

标签: php mysqli

我正在尝试使用mysqli_multi_query函数,但它不起作用。我认为echo会给我一个错误来打印$ res值,但它会打印出“1”。因此fetch_array不起作用,因为在第一个参数中它不接受数字1。

$sql =" start transaction;";
$sql .="insert into account (user_id, username, activation_date, passw) 
values ('$id','$username',CURDATE(),'$password');";
$sql .="insert into users (user_id,name,surname,birth,email,photo) values 
('$id','$name', '$surname','$birth','$mail','$foto');";
$sql .="commit work;";


$res=mysqli_multi_query($connessione, $sql);
echo( $res);
if($res != FALSE)   {   
$row=mysqli_fetch_array($res,MYSQLI_ASSOC); 
echo mysqli_error($connessione);
   return $row;
} else {
print_r(mysqli_error_list($connessione));
echo "<br>";
    mysqli_close($connessione);
   return false;
}

P.S。在mysql WorkBench中,查询的值被添加到我的表中。所以我认为查询有效。

它可能是什么?

2 个答案:

答案 0 :(得分:1)

@MrCaptainAlex您正在尝试打印SQL INSERT语句的结果集(即从FROM获取的数据)。这是不合逻辑的。正如聪明人的评论所述;对于查询是否成功执行,您的查询返回true(1)或false(0)。它 NOT 返回任何资源数据

您的SQL代码/ PHP代码是一种代码,可以处理从数据库中收集的数据 - SELECT... FROM而不是INSERT .... INTO

您正在对查询$res进行处理,就好像它刚刚从数据库中获取了大量数据一样。但它只将数据 IN TO 放入数据库,而不是删除任何数据 OUT OF 数据库。尝试运行SELECT ...查询来从数据库中提取数据。

答案 1 :(得分:-1)

你使用“echo”,但对于数组它应该是print_r($var)

你能用:

print_r($res);

向我们展示你拥有的东西。