Ich befolge zurzeit W3Schools Tutorial mit vorbereiteten SQL-Anweisungen, wenn ich versuche, Daten in die Datenbank einzufügen, sagt $ Vorname = "Nathan" und $ lastname = "Kent" ist eine ungenutzte lokale Variable? Es gibt auch keinen Fehler zurück, so dass es eine Verbindung herstellt und wenn ich die Datenbank überprüfe, hat es keine neuen Einträge.Vorbereitete SQL-Anweisungen INSERT
Antwort
Mit MYSQLI müssen Sie tatsächlich nach Fehlern suchen, anstatt anzunehmen, dass sie bei Ihnen schreien.
function setData(){
global $servername;
global $username;
global $password;
global $dbname;
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else{
echo "Connection Successful" . "<br>";
}
$stmt = $conn->prepare("INSERT INTO test(firstname, surname) VALUES (?,?)");
// add error check
if ($stmt === false) {
echo $conn->error;
exit;
}
// Its not necessary to load the variables before the `bind_param`
// but as you dont actually have these variables yet you do
$firstname = "James";
$lastname = "Williams";
$stmt->bind_param("ss", $firstname, $surname);
$status = $stmt->execute();
// add error check
if ($status === false) {
echo $conn->error;
exit;
}
echo "New Records Created";
$stmt->close();
$conn->close();
}
Sie könnten diese reinigen ein wenig auch, indem in den Mainline-Code in die Datenbank verbinden und die Verbindung param auf die Funktion sowie die Datenparameter
vorbeifunction setData($conn, $firstname, $lastname){
$stmt = $conn->prepare("INSERT INTO test(firstname, surname) VALUES (?,?)");
// add error check
if ($stmt === false) {
echo $conn->error;
exit;
}
$stmt->bind_param("ss", $firstname, $surname);
$status = $stmt->execute();
// add error check
if ($status === false) {
echo $conn->error;
exit;
}
return "New Records Created";
$stmt->close();
$conn->close();
}
$servername = '127.0.0.1';
$username = 'root';
$password = 'veryStRongPassPhrASe';
$dbname = 'mydatabase';
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else{
echo "Connection Successful" . "<br>";
}
$msg = setData($conn, 'Fred', 'Bloggs');
echo $msg;
Anstelle von echo $ conn-> error; exit; 'warum nicht einfach' exit ($ conn-> error); '? – Script47
@ Script47 Sie sagen Kartoffel ich sage Kartoffel. Eigentlich funktioniert das nicht schriftlich. hahhaa – RiggsFolly
Super! Ich werde das in der Zukunft verwenden, ich habe es herausgefunden, weil ich globale Variablen in meiner Funktion verwendet habe, also müssen die anderen Werte im selben Umfang sein. Ist eine globale Variable die richtige Methode zum Abrufen von dbconfig-Details? Ich habe die dbconfig Details in einer anderen .php Datei und schließe sie dann ein. – Nathan
Sie definieren nicht ein Wert für $surname
:
$stmt->bind_param("ss", $firstname, $surname);
$firstname = "James";
$lastname = "Williams";
$stmt->execute();
ändern $lastname
zu $surname
- 1. Commons DBUtils Oracle 11g vorbereitete Anweisung - Insert-Anweisung
- 2. Beispiel für eine vorbereitete INSERT-Anweisung mit Ruby pg Gem
- 3. Spring Batch insert/update auf Postgres vorbereitete Anweisung mit
- 4. PHP INSERT Vorbereitete Anweisung nicht mit AJAX einfügen
- 5. PHP UPDATE vorbereitete Anweisung
- 6. vorbereitete Anweisungen mit psycopg
- 7. Vorbereitete Anweisung mysqli
- 8. MySQLi vorbereitete Anweisungen Fehlerberichterstattung
- 9. mysql (sehr) dynamisch vorbereitete Anweisung
- 10. PHP PDO Grund vorbereitete Anweisung
- 11. Mehrwerte in PHP Vorbereitete Anweisungen
- 12. PDO vorbereitete Anweisung mit dynamischen Variablen
- 13. PDO vorbereitete Anweisung tut nichts
- 14. SQL Server Nvarchar und Java vorbereitete Anweisung
- 15. INSERT vs INSERT INTO
- 16. PDO vorbereitete Anweisung Probleme
- 17. mysqli vorbereitete Anweisung Fehler
- 18. Wie funktionieren vorbereitete Anweisungen?
- 19. Oracle vorbereitete Anweisung hängt
- 20. mysqli_real_escape_string UND vorbereitete Aussagen?
- 21. SQL vorbereitete Anweisung (PHP)
- 22. MySQLi vorbereitete Anweisungen?
- 23. PHP PDO vorbereitete Aussagen
- 24. PHP - vorbereitete Anweisung bind_param()
- 25. php vorbereitete Anweisung
- 26. mysql permanent vorbereitete Anweisungen
- 27. Vorbereitete Anweisungsverknüpfungen in Java
- 28. Wie vorbereitete Anweisungen in Joomla verwenden?
- 29. Mehrere vorbereitete Anweisungen auf derselben Seite MYSQLI
- 30. SQL in vorbereitete Anweisung SQL-Ausnahme
Wo sind '$ Vorname' und' $ Nachname' definiert? – Script47
Ich bin nicht positiv, aber ich bin ziemlich sicher, dass Sie sie vor dem Binden setzen müssen; und da ist das Problem von '$ ** sur ** name' vs' $ ** last ** name'. – Uueerdo
@Uueerdo Ich habe das korrigiert, das war eine Last-Minute-Änderung;) – Nathan