php中的语句没有执行到mysql中

时间:2015-10-10 15:53:23

标签: php mysql

所以我试图准备一个简单的INSERT stmt到我的sql,事情是,在代码的末尾,它不会给任何时候的错误,新的行不是在数据库上创建的。 Thx提前。

if ($insert_stmt = $dbc->prepare("INSERT INTO socios (id, stam ,primeiro_nome, ultimo_nome, email, 
                                cod_postal, localidade, password, salt) 
                                VALUES (null, ?, ?, ?, ?, ?, ?, ?, ?)")) {
            $stam = 1555;
            $insert_stmt->bind_param('isssisss', $stam ,$primeiro_nome, $ultimo_nome, 
                                $email, $cod_postal, $localidade, 
                                $password, $random_salt);
            // Execute the prepared query.
            mysqli_stmt_execute($insert_stmt);
            $affected_rows = mysqli_stmt_affected_rows($stmt);
            if (! $affected_rows == 1) {
                header('Location: error.php?err=Registration failure: INSERT');
            }
            header('Location: register_success.php');
        }
        else {
            header('Location: error.php?err=Registration failure: INSERT2');
        }

2 个答案:

答案 0 :(得分:2)

编码错误似乎在这一行:

$affected_rows = mysqli_stmt_affected_rows($stmt);

那应该是:

$affected_rows = mysqli_stmt_affected_rows($insert_stmt);

答案 1 :(得分:0)

您可以执行我的代码。

<?
$query = "INSERT INTO socios(stam ,primeiro_nome, ultimo_nome, email, 
                                cod_postal, localidade, password, salt) 
                                VALUES (?, ?, ?, ?, ?, ?, ?, ?)";

if ($stmt = mysqli_prepare($dbc, $query)) 
{
    $stam = 1555;
    mysqli_stmt_bind_param($stmt, "isssisss", $stam ,$primeiro_nome, $ultimo_nome, 
                        $email, $cod_postal, $localidade, 
                        $password, $random_salt);

    mysqli_stmt_execute($stmt);
    $affected_rows = mysqli_stmt_affected_rows($stmt);
    if ($affected_rows != 1) 
    {
        header('Location: error.php?err=Registration failure: INSERT');
    }

    header('Location: register_success.php');

}
else
{
    header('Location: error.php?err=Registration failure: INSERT2');
}
?>