【问题标题】:Storing 5 queries results in PHP variables在 PHP 变量中存储 5 个查询结果
【发布时间】:2023-03-13 08:05:01
【问题描述】:

我得到了这五个查询:

$sql = "SELECT * from jogador,usuarios WHERE jogador.id=usuarios.j1";
$sql .= "SELECT * from jogador,usuarios WHERE jogador.id=usuarios.j2";
$sql .= "SELECT * from jogador,usuarios WHERE jogador.id=usuarios.j3";
$sql .= "SELECT * from jogador,usuarios WHERE jogador.id=usuarios.j4";
$sql .= "SELECT * from jogador,usuarios,goleiro WHERE goleiro.id=usuarios.j5";

并且只想从这 5 个查询中检索这些变量的结果,以便稍后在表上使用:

    $id        = $row['id'];
    $nome      = $row['nomej'];
    $nometime  = $row['nometime'];
    $foto      = $row['foto'];

我尝试使用 mysqli 多查询,但就是做不到。

我试过这个,但它不起作用。 ($con 是连接)

if (mysqli_multi_query($con,$sql))
{
  do
    {
    // Store first result set
    if ($result=mysqli_store_result($con))
      {
      while ($row=mysqli_fetch_row($result))
        {
    $id        = $row['id'];
    $nome      = $row['nomej'];
    $nometime  = $row['nometime'];
    $foto      = $row['foto']; 
        }
      mysqli_free_result($con);
      }
    }
  while (mysqli_next_result($con));
}

有什么建议吗?

【问题讨论】:

  • 您需要用分号来分隔查询。
  • 您当然可以结合前四个的WHERE 条件,并根据UNION 加入最后一个查询 - 当可以限制要选择的列时。
  • 它是如何失败的?我怀疑您生成的 SQL 查询充满了语法错误,因为您试图一次执行所有 5 个查询,它们之间甚至没有空格字符。如果您检查执行查询的结果,数据库无疑会告诉您这些错误。
  • 因为你用$sql .=你基本上说所有的查询都是一个。
  • 我完全糊涂了。你想做什么?

标签: php mysql mysqli


【解决方案1】:
  1. 忘记mysqli_multi_query。它不是你想的那样。
  2. 根据您的查询做出有意义的查询。
  3. 从前四个中进行一个查询(或从所有 5 个中选择一个。这取决于您实际要选择的内容)。
  4. 通过单独的 query() 调用运行剩余的查询。

【讨论】:

  • 我刚刚在所有查询中都使用了 UNION,感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 2019-12-29
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多