所以我试图准备一个简单的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');
}
答案 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');
}
?>