在PHP中执行两条准备好的mysqli语句

在PHP中执行两条准备好的mysqli语句,php,mysql,mysqli,prepared-statement,Php,Mysql,Mysqli,Prepared Statement,我想在一个php脚本中执行两个准备好的语句。如果只有一个,它可以正常工作,但只要我想执行两个或多个ot,它就不再工作了。我想这是一些我不知道的关于准备好的陈述的基本行为,但是我自己找不到任何东西,也许我找错了问题。 无论如何,这是我的代码,它没有进入第二个if块 $query_checkIfUserMailExists = "SELECT email FROM user WHERE email = ?"; if($stmt = mysqli_prepare($connection, $query

我想在一个php脚本中执行两个准备好的语句。如果只有一个,它可以正常工作,但只要我想执行两个或多个ot,它就不再工作了。我想这是一些我不知道的关于准备好的陈述的基本行为,但是我自己找不到任何东西,也许我找错了问题。 无论如何,这是我的代码,它没有进入第二个if块

$query_checkIfUserMailExists = "SELECT email FROM user WHERE email = ?";
if($stmt = mysqli_prepare($connection, $query_checkIfUserMailExists))
{
    mysqli_stmt_bind_param($stmt, "s", $_POST["addUser_email"]);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);
    mysqli_stmt_close($stmt);
}
这是可行的,但几行之后这些行就不起作用了

$query_addUser = "INSERT INTO user (firstname, surname, [...]) VALUES (?, ?, [...])";
if($stmt = mysqli_prepare($connection, $query_addUser))
{
    echo "I am never printed";
    mysqli_stmt_bind_param($stmt, "sssssssssss", $addUser_firstName, $addUser_surName, [...]);
    $resultAddUser = mysqli_stmt_execute($stmt);
    mysqli_stmt_close($stmt);
}
我想我需要用mysqli_stmt_close关闭一个stmt,但显然这不起作用。我知道,没有输入第二个id块,因为如果执行此代码,我不会读取“我从未输入”。 我还尝试将seond$stmt命名为不同的($stmt1),但这也没有帮助


John

您是否验证了第二条语句在第一条语句不存在时有效?请给我一分钟时间。编辑:它没有。这是向前迈出的一步,但我看不出原因:(现在它工作正常,我没有改变任何东西。我不理解它…第二条语句可能有错误,您的数据库在
mysqli_prepare()
已到达。如果您再次看到相同的行为,请尝试查看是否存在数据库等待向您显示的错误: