我想执行这些查询
$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);
答案 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()
以检查查询中是否存在错误。