Wo ist der Fehler

Hallo hab ein problem

[code]<?php
$name = “” . $_POST[‘Name’] . “”;
$email_teil_1 = “” . $_POST[‘email_teil_1’] . “”;
$email_teil_2 = “” . $_POST[‘email_teil_2’] . “”;
$text = “” . $_POST[‘Nachricht’] . “”;
$datum = date(‘d.m.y’);

@$db = new mysqli(‘localhost’, ‘eeeeeeeeek’, ‘eeeeeeee’, ‘eeeeeeeeeeeekkkkkk’);
//Verbindung überprüfen
if (mysqli_connect_errno()) {
printf(“Verbindung fehlgeschlagen: %s\n”, mysqli_connect_error());
exit();
}

//Datensatz-Inhalte festlegen
$sql_befehl = "
INSERT INTO gast_1 (
id,
name,
email_teil1,
email_teil2,
nachricht,
zeitunddatum

) VALUES (
’’,
’$name’,
’$email_teil_1’ ,
’$email_teil_1’ ,
’$text’,
’$datum ’

)";

if ($db->query($sql_befehl)) {
echo “Eingetragen”;
} else {
echo “Ein Problem ist aufgetreten”;
}
$db->close();
?>[/code]

wo ist der fehler ?

Bitte gib mir keine Informationen über eventuelle Fehlermeldungen oder sonstwie unerwartetes Verhalten, ich werde die Details einfach mal erraten. :ps:

sry :ps: :ps:

es kommt immer" Ein Problem ist aufgetreten" bitte hilft mir :hail:

Na das ist doch schon mal ein Anfang, $db->query() gibt also false zurück. :wink:
Ersetze die 39. Zeile mitecho "<font color='#00FF00'>Ein Problem ist aufgetreten ($db->error)</font>";

ne immer noch nicht kommt

Ein Problem ist aufgetreten (Duplicate entry ‘0’ for key 1)

man bin ich dumm :ps: :hammer:
etwas mit der Datenbank ist Faltsch (ID werden nich automatisch vergeben )

Wenn id AUTO_INCREMENT hat, musst du es nicht in den insert schreiben :wink:

Mensch, das war auch kein Fix, sondern das sagt dir, was falsch ist. :unamused:

Ich denke mal, du hast id als primary key und auto_increment definiert - wenn du bei einem INSERT versuchst, die id als ‘’ einzufügen, evaluiert das zu 0 und da die ID 0 schon vorhanden ist, tritt der Fehler auf. Einfach id aus der Query löschen.

Papperlapap, ID ist nen Index und der ist eben nicht Auto_increment gesetzt, deswegen der Doublicated Entry for 0.
Setzt man das Ding nämlich als Index und Auto_Increment, kannst da auch im Query übergeben was du willst, er übernimmt automatisch den nächsten Freien Index und fertig ist.

Man lässt es nur der übersichtlichlichkeit und der besseren lesbarkeit vom Code weg. Ansonsten ist das egal, hat auf die Ausführbarkeit vom Script jedenfalls gar keinen Einfluss.

Greez

Phil, ich muss dich enttäuschen, dem ist nictht so…
Du kannst ihn überschreiben, da er aber PrimaryKey ist, darf er nicht doppelt vorkommen :wink: