Ich weiß Stackoverflow lehnt wiederholte Fragen ab, aber ertragen Sie mit mir, wie ich viele ähnliche Fragen gescannt habe, ohne bestimmte Auflösungen zu finden, die mir helfen werden. (Meistens erwähnen sie Dinge über Datenbank Einfügungen vermeiden)Undefinierte Variable PHP + MySQL
ich diese Fehlermeldungen auftreten:
here db connection success
Notice: Undefined variable: firstname in C:\xampp\htdocs\practice_connection_app\submit.php on line 10
Notice: Undefined variable: lastname in C:\xampp\htdocs\practice_connection_app\submit.php on line 10
Notice: Undefined variable: conn in C:\xampp\htdocs\practice_connection_app\submit.php on line 11
Fatal error: Call to a member function exec() on null in C:\xampp\htdocs\practice_connection_app\submit.php on line 11
Das erste Ergebnis zeigt einfach, dass ich auf meine Datenbank verbunden haben, die ich mit phpMyAdmin gemacht.
Hier ist mein entsprechender Code (meine HTML-Vorlage Seite, die auf einer PHP-Aktion ruft):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>student info</title>
</head>
<body>
<br>
Enter your first name and last name in the corresponding boxes.
<br>
<form action="submit.php" method="POST">
First: <input type="text" name="firstname"/>
<br>
Last: <input type="text" name="lastname"/>
<br>
<input type="submit">
</form>
</body>
</html>
die Datenbankverbindung (glaube ich)
<?php
echo 'here';
$dsn = 'mysql:host=localhost;dbname=practice_students';
$username = 'test_usr';
$password = 'pa55word';
try {
$db = new PDO($dsn, $username, $password);
echo 'db connection success';
} catch (PDOException $e) {
$error_message = $e->getMessage();
include('database_error.php');
exit();
}
?>
und meine php einreichen Seite
<?php
echo 'here ';
$dsn = 'mysql:host=localhost;dbname=practice_students';
try {
$db = new PDO($dsn);
echo 'db connection success';
$sql = "INSERT INTO people (firstname, lastname)
VALUES ('$firstname', '$lastname')";
$conn->exec($sql);
echo "Now we know your name! Hi," . " " . $firstname . " " . $lastname;
} catch (PDOException $e) {
$error_message = $e->getMessage();
include('database_error.php');
exit();
}
?>
Ich verstehe, dass ich einige 'Aufräumen' müssen, um Datenbankeinfügungen zu vermeiden, aber für jetzt I Ich möchte nur wissen, wie ich sicherstellen kann, dass meine Eingaben in die Datenbank gelangen und zurückgegeben werden können.
Vielen Dank im Voraus!
1. Sie erstellen keine db-Verbindung irgendwo ('$ conn') - wie erwarten Sie, es zu verwenden? 2. Wo bevölkern Sie in Ihrem Code '$ firstname' und' $ lastname' von '$ _POST'? –
Ich bin mir nicht ganz sicher, ob das stimmt, aber wahrscheinlich hätte ich diese Seite zur Frage hinzufügen sollen: Php echo 'here'; $ dsn = 'mysql: host = lokaler host; dbname = praxis_studenten'; $ username = 'test_usr'; $ password = 'pa55word'; try { $ db = neues PDO ($ dsn, $ username, $ password); echo 'db Verbindungserfolg'; } catch (PDOException $ e) { $ error_message = $ e-> getMessage(); include ('datenbank_error.php'); Ausgang(); } ?> –
Bitte nicht Code in Kommentare als Code Dump fast unmöglich zu entschlüsseln. Bearbeiten Sie Ihre ursprüngliche Frage, um neue Informationen hinzuzufügen. –