【问题标题】:PHP and MYSQLI , function mysqli_multi_queryPHP 和 MYSQLI,函数 mysqli_multi_query
【发布时间】:2018-05-28 17:47:09
【问题描述】:

我正在尝试使用 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;
}

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

会是什么?

【问题讨论】:

  • 它不起作用”是什么意思?
  • 你想在这里获取什么,因为这里只是插入查询。
  • @Martin - 我 认为 $res 在这种情况下是一个布尔值。文档 (php.net/manual/en/mysqli.multi-query.php) 说它返回一个布尔值。 @MrCaptain Alex - 你为什么是mysqli_fetch_array?没有什么可取的;你执行了 2 个插入语句。
  • @Martin 有 mysqli_multi_query 返回 true 或 false 那么这里的 mysqli 资源在哪里。

标签: php mysqli


【解决方案1】:

@MrCaptainAlex 您正在尝试打印 SQL INSERT 语句的结果集(即从 FROM 获取的数据)。这是不合逻辑的。正如更聪明的人在 cmets 中所说的那样;如果查询成功执行,您的查询返回 true (1) 或 false (0)。它确实返回任何资源数据

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

您将查询$res 视为刚刚从数据库中获取了大量数据。但它只将数据 IN TO 放入数据库,没有提取任何数据 OUT OF 数据库。尝试运行 SELECT ... 查询,而不是从数据库中提取数据。

【讨论】:

  • 我明白,我犯了一个大错误。感谢您的耐心等待。
  • @MrCaptainAlex 不用担心很乐意提供帮助。
【解决方案2】:

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

你能用吗:

print_r($res);

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

【讨论】:

  • 这并不能真正回答问题,并不是说我们确定它到底是什么,应该是评论
猜你喜欢
  • 2016-02-08
  • 2013-01-05
  • 2016-10-21
  • 2013-09-25
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多