gpt4 book ai didi

php - mysqli:它可以在一条语句中准备多个查询吗?

转载 作者:IT老高 更新时间:2023-10-28 23:59:13 24 4
gpt4 key购买 nike

我想知道我是否可以准备一个执行多个查询的 mysqli 语句:

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...);
and after all
mysqli->bind_param("sssss", 1, 2, 3, 4, 5);

这样会出错:在...中的非对象上调用成员函数 bind_param()

$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();

最佳答案

一个准备好的语句只能执行一个 MySQL 查询。您可以在不同的变量中准备任意多的语句:

$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");
$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");

然后再执行它们。如果你想确保任何一个都不会运行,除非两者都能够运行,那么你需要研究交易,就像托马斯说的那样。

此外,一般提示:“在非对象上调用成员函数”是 prepare() 失败时出现的标准错误,因此 $stmt 不是' 实际上是一个准备好的语句对象。这通常意味着您需要在 prepare() 语句中查找错误,而不是稍后再查找。

关于php - mysqli:它可以在一条语句中准备多个查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11632902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com