在连续的mysqli_query php中执行多个mysql查询

时间:2014-11-12 02:19:37

标签: php mysqli

我想执行这些查询

$q1 = "INSERT INTO t1 (id,desc) VALUES (1,'desc');" <br>
$q2 = "SET @last_id = LAST_INSERT_ID();" <br>
$q3 = "INSERT INTO t2 (parentid,desc) VALUES (@last_id, 'somedesc');"<br>

这会正常运行3 mysqli_query是这样的吗?

$res = mysqli_query($q1);
$res2 = mysqli_query($q2);
$res3 = mysqli_query($q3);

1 个答案:

答案 0 :(得分:1)

首先,desc是一个MySQL保留字

如果您决定使用它,则必须用反引号包装,而不是将其重命名为desc以外的其他内容,例如description

因此,假设您的数据库连接已建立,并且使用$con作为示例,您将需要将其更改为以下内容,但您尚未向我们展示您的数据库连接是什么。

$q1 = "INSERT INTO t1 (id,`desc`) VALUES (1,'desc')";
$q2 = "SET @last_id = LAST_INSERT_ID()";
$q3 = "INSERT INTO t2 (parentid,`desc`) VALUES (@last_id, 'somedesc')";

减去所有<br>代码,因为您在PHP内部,除非这不是代码的一部分,而是在您的问题中尝试格式化代码。

旁注:你的分号错了。

并将DB连接传递给您的查询:

$res = mysqli_query($con,$q1);
$res2 = mysqli_query($con,$q2);
$res3 = mysqli_query($con,$q3);

另外,将or die(mysqli_error($con))添加到mysqli_query()以检查查询中是否存在错误。