Hallo, ich hatte gehofft, könnte Licht teilen. Ich glaube, dass ich bisher Fortschritte gemacht habe. Ich habe eine Registrierung hier:Trouble Desinfektion Formular mit vorbereiteten Anweisung
Was ich tun wollte, ist meine Daten vor dem Senden der Datenbank saniert.
<?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
Oben ist der Fehler immer ist, wenn ich die Daten eintragen.
Haben versucht mit mysqli_real_escape_string
UND mysqli->real_escape_string
Kann einige Ratschläge, wenn ich noch haben satiniertem müssen auch tho die Daten binden.
Auch in meiner Datenbank habe ich created_at Feld. siehe untenstehenden Code.
$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 immer diese Fehlermeldung:
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
Ihre Hilfe geschätzt wird. Danke
Sie haben 6 Fragezeichen, aber 7 Werte zum Einfügen. – steven