一个准备好的语句只能执行一个MySQL查询。您可以在不同的变量中准备任意数量的语句:
$stmtUser = $sql->prepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?)");$stmtProc = $sql->prepare("INSERT INTO process (id_user, idp) VALUES (?,?);");然后再执行它们。如果您想确保除非一个都能够运行,否则任何一个都不会运行,那么您需要像Thomas所说的那样研究事务。
另外,一个一般性的提示:“在非对象上调用成员函数”是您
prepare()失败时遇到的标准错误,因此
$stmt实际上不是准备好的语句对象。通常,这意味着您需要在
prepare()语句中查找错误,而不是以后查找任何错误。



