首页 > 数据库 > mysql教程 > 可以在单个 mysqli 语句中执行多个查询吗?

可以在单个 mysqli 语句中执行多个查询吗?

Linda Hamilton
发布: 2024-10-29 03:57:29
原创
251 人浏览过

Can You Execute Multiple Queries in a Single mysqli Statement?

单个 mysqli 语句中的多个查询

您可以准备一个执行多个查询的 mysqli 语句吗?

问题:

是否可以构造一个执行多个查询的 mysqli 语句?例如:

<code class="php">mysqli->prepare("query1 ...1,2,3 param...; query2...4,5 param...");
or 
mysqli->prepare("insert into ...1,2,3 param...; insert into...4,5 param...");</code>
登录后复制

尝试这样的构造会导致错误,“在...中的非对象上调用成员函数bind_param()”

<code class="php">$stmt = $sql->getQueryPrepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?); INSERT INTO process (id_user, idp) VALUES (?,?);");

$stmt->bind_param("ssssss",$id, $username, $pw, $email, $id, $idp);

$stmt->execute();
$stmt->close(); </code>
登录后复制

答案:

准备好的语句只能执行单个 MySQL 查询。但是,您可以在单独的变量中准备多个语句:

<code class="php">$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");</code>
登录后复制

这些语句可以随后执行。如果您需要确保两个查询都成功执行,请考虑使用事务。

请记住,“调用非对象上的成员函数”错误通常表示在prepare()语句中失败,而不是后续代码出现问题。

以上是可以在单个 mysqli 语句中执行多个查询吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板