Ich bin neu in PHP, aber normalerweise in der Lage, die meisten Probleme zu lösen, aber dieses hat mich.INSERT INTO funktioniert nicht für die 2. Tabelle
Ich versuche, eine Newsletter-Anmeldung (einzelnes Feld) mit einem einzigen Absenden-Button zu erstellen. Ich habe das funktioniert gut, Senden einer E-Mail und Einfügen der Formulardaten in meine Tabelle. Ich möchte jedoch Funktionalität hinzufügen, um eine Bestätigungs-E-Mail an die Person senden zu lassen, die sich anmeldet. Ich habe umfangreiche Nachforschungen angestellt und kenne die Methode dahinter, aber mein Code erfasst gerade keine Daten in meine zweite Tabelle, in der die Bestätigungsinformationen gespeichert sind.
Ich habe 2 Tabellen: Tabelle 1 mit dem Namen 'Newsletter' Spalten sind:
idmail,emailaddress,datetime,state
idmail
-AUTO_INCREMENT
Tabelle 2 genannt 'bestätigen' gesetzt Spalten sind:
idconfirm,emailaddress,confirmkey
Hier ist mein Code (Ich habe den E-Mail-Teil weggelassen, der danach geht, da das alles OK funktioniert):
//connect to database
include('admin/connection.php');
$email = mysqli_real_escape_string($dbc, $_POST['email']);
//check if value exists in table
$result = mysqli_query($dbc, "SELECT emailaddress FROM newsletter WHERE emailaddress = '$email'");
if (mysqli_num_rows($result)==0) {
//Insert value into database
$query1 = mysqli_query($dbc, "INSERT INTO newsletter(emailaddress, datetime, state) VALUES('$email','$now','0')");
mysqli_query($dbc, $query1);
// Get ID of last record
$id = mysqli_insert_id($dbc);
//Create a random key
$hash = $email.date('mY');
$hash = md5($hash);
//Insert value into database
$query2 = mysqli_query($dbc, "INSERT INTO confrim(idconfirm, emailaddress, confirmkey) VALUES('$id','$email','$hash')");
mysqli_query($dbc, $query2);
Wenn ich eine E-Mail-Adresse einreiche, wird die erste Tabelle korrekt ausgefüllt.
Ziel ist es, die in der ersten INSERT INTO-Abfrage erstellte Auto-ID in eine Variable zu übernehmen und sie dann in der zweiten Tabellenspalte namens 'idconfim' hinzuzufügen.
Ich habe versucht:
echo $id;
echo $email;
echo $hash;
und alle Variablen die richtigen Informationen halten.
Hat jemand irgendwelche Ideen? Ich habe versucht, viele Dinge hier aufzulisten, aber ich habe das recherchiert und ich weiß nur nicht, wo ich falsch liege.
Vielen Dank im Voraus.
Zunächst einmal: 'INSERT INTO confrim' ->' INSERT INTO confirm' – lubilis
Führen Sie die Abfrage direkt auf phpmyadmin und sehen Sie die Nachricht. –
Ihr Skript ist in Gefahr von [SQL Injection Attack] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Werfen Sie einen Blick auf, was passiert ist [ Little Bobby Tables] (http://bobby-tables.com/) Auch [Wenn Sie Eingaben entgehen, ist es nicht sicher!] (Http://stackoverflow.com/questions/5741187/sql-injection-that-gets -around-mysql-real-escape-string) Verwenden Sie [vorbereitete parametrisierte Anweisungen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly