Ich habe einige Probleme mit meinem Code. Es scheint, als ob ich nicht in der Lage wäre, mehrere vorbereitete Aussagen zu haben, was mir etwas ungewöhnlich erscheint.Mehrere vorbereitete Anweisungen auf derselben Seite MYSQLI
Ich würde mich freuen, wenn Sie einen Fehler finden oder mir helfen, weil ich das Problem nicht herausfinden kann.
Mein Fehler:
Fatal error: Call to a member function bind_param() on boolean in /Applications/XAMPP/xamppfiles/htdocs/platform/creating_user.php on line 37
ich zu überprüfen, ich versuche, wenn der Benutzer E-Mails bereits in der Datenbank vorhanden ist und dann den Benutzer registrieren.
Der Code funktioniert gut, wenn ich den $ Check nicht ausführen.
$check->execute();
Ich möchte auch eine Antwort auf meinen Workflow (die Art, wie mein Code aufgebaut ist). Ist es okay?
Danke! Ich
<?php
$db = new mysqli("localhost","root","","database");
session_start();
if (isset($_POST)){
if(
!empty($_POST["name"])
& !empty($_POST["city"])
& !empty($_POST["zip"])
& !empty($_POST["email"])
& !empty($_POST["tel"])
& !empty($_POST["password"])
) {
$name = encrypt($_POST["name"]);
$city = encrypt($_POST["city"]);
$zip = encrypt($_POST["zip"]);
$email = encrypt($_POST["email"]);
$tel = encrypt($_POST["tel"]);
$password = encrypt($_POST["password"]);
if(!empty($name) && !empty($city) && !empty($zip) && !empty($email) && !empty($tel) && !empty($password)) {
$check = $db->prepare("SELECT email FROM user WHERE email = ?");
$check->bind_param('s', $email);
$check->execute();
if ($check->num_rows == 1) {
header("Location: index.php");
die();
} else {
$insert = $db->prepare("INSERT INTO user (name, city, zip, email, tel, password, created) VALUES (?, ?, ?, ?, ?, ?, NOW())");
$insert->bind_param("ssssss",$name, $city, $zip, $email, $tel, $password);
if ($insert->execute()){
$db->close();
$_SESSION["user"] = $email;
header("Location: created_user");
die();
} else {
header("Location: create-user");
die();
}
}
} else {
header("Location: create-user");
die();
}
} else {
header("Location: create-user");
die();
}
} else {
header("Location: create-user");
die();
}
?>
'$ db-> prepare' a gibt' boolean' dies meistens bedeutet, dass es etwas falsch mit der DB Verbindung. – WasteD
füge dies für die Diagnose hinzu if (! $ Check = $ db-> vorbereiten ("SELECT email FROM user WHERE email =?")) { echo $ db-> fehler; Ausgang (0); } – buildok