Здравствуйте, я надеялся, что смогу поделиться светом. Я считаю, что прогресс до сих пор. У меня есть регистрация здесь:Тревожная дезинфицирующая форма с подготовленным заявлением
Что я хотел сделать, это дезинфицировать мои данные перед отправкой базы данных.
<?php
session_start();
if(is_file('include/connection.php'))
include_once('include/connection.php');
else
exit('Database FILES MISSING:(');
if(isset($_POST['submit'])) {
$errors = array();
$data = array();
$name = mysqli_real_escape_string($_POST['name']);
$last_name = $_POST['last_name'];
$user_name = $_POST['user_name'];
$user_type = $_POST['user_type'];
$email = $_POST['email'];
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password'];
// $created_at = $_POST['created_at'];
$password_hash = password_hash($password, PASSWORD_DEFAULT);
//$created_at = date('Y-m-d');
if(!($stmt = $mysqli->prepare("INSERT INTO user (name, last_name, user_name, user_type, email, password)
VALUES (?,?,?,?,?,?)"))){
echo "Prepare failed: (" . $mysqli->errno . ")" . $mysqli->error;
}
if(!$stmt->bind_param('ssssss', $name, $last_name, $user_name, $user_type, $email, $password_hash)){
echo "Binding paramaters failed:(" . $stmt->errno . ")" . $stmt->error;
}
if(!$stmt->execute()){
echo "Execute failed: (" . $stmt->errno .")" . $stmt->error;
}
if($stmt) {
$_SESSION['main_notice'] = "Successfully registered, login here!";
header('Location: index.php');
}
else{
echo "Registration failed";
}
}
$mysqli->close();
?>
Execute failed: (1048)Column 'name' cannot be null
Выше ошибка я получаю, когда я отправить данные.
Пытались с помощью mysqli_real_escape_string
И mysqli->real_escape_string
Может кто-нибудь совет, если я все еще нужно satinized даже то есть привязки данных.
Также в моей базе данных у меня есть поле created_at. см. ниже код.
$created_at = $_POST['created_at'];
$password_hash = password_hash($password, PASSWORD_DEFAULT);
$created_at = date('Y-m-d');
if(!($stmt = $mysqli->prepare("INSERT INTO user (name, last_name, user_name, user_type, email, password, created_at)
VALUES (?,?,?,?,?,?)"))){
echo "Prepare failed: (" . $mysqli->errno . ")" . $mysqli->error;
}
if(!$stmt->bind_param('ssssss', $name, $last_name, $user_name, $user_type, $email, $password_hash, $created_at)){
echo "Binding paramaters failed:(" . $stmt->errno . ")" . $stmt->error;
}
Am получаю эту ошибку:
Prepare failed: (1136)Column count doesn't match value count at row 1 Fatal error: Call to a member function bind_param() on a non-object in /home/olami560/public_html/project/allocation/progress/register.php on line 30
Ваша помощь будет оценена. спасибо
У вас есть 6 вопросительных знаков, но 7 значений для вставки. – steven