我正在尝试使用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中,查询的值被添加到我的表中。所以我认为查询有效。
它可能是什么?
答案 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);
向我们展示你拥有的东西。