【发布时间】: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 .=你基本上说所有的查询都是一个。 -
我完全糊涂了。你想做什么?