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

时间:2015-10-08 21:04:57

标签: php mysql mysqli prepared-statement

我想在一个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 different($ stmt1),但这也无济于事。

约翰

0 个答案:

没有答案