Kein Insert aber auch keine Fehlermeldung??
hawkmaster
- php
0 suit
Hallo zusammen,
ich komme mir gerade vor als ob ich zum ersten mal einen Insert in eine MySQL DB mache.
Oder aber ich stehe sowas auf dem Schlauch :-))
in einem Script mache ich einen Insert in eine MySQL Tabelle:
if (empty($checkerror)){
$sqlaccdep = "INSERT INTO accdep (ArtID,AccID) ";
$sqlaccdep .= "VALUES ('$ArtID_arr[ArtID]','$acc_id[AccID]')";
$DBO->exec($sqlaccdep);
echo "mache insert in aacdep mit Artid -" . $ArtID_arr['ArtID'] . "- und Accid -" .$acc_id['AccID']."- <br>";
}
Die Echo Ausgabe zeigt die Werte 8 und 5 an.
In der Tabelle werden aber keine Einträge gemacht.
Es gibt auch keine "UNIQUE" Spalten oder sonst etwas was verhindern könnte das doppelte Einträge gemacht werden.
und es kommen auch keine Fehlermeldungen.
Hat jemand eine Idee bzw. wie kann ich herausfinden warum kein Insert gemacht wird?
vielen Dank und viele Grüße
hawk
Hat jemand eine Idee bzw. wie kann ich herausfinden warum kein Insert gemacht wird?
indem du die funktion mysql_error() zu rate ziehst, diese sollte irgendwo in deinem objekt DBO bzw der zugehörigen klasse zu finden sein (oder auch nicht) - das ist aus deinem schnipsel nicht ersichtlich
Hallo suit,
danke für deine Hilfe,
hmm,
also selbst wenn ich es mit "try" and "catch"
kommt keine Fehlermeldung.
try {
if (empty($checkerror)){
$sqlaccdep = "INSERT INTO accdep (ArtID,AccID) ";
$sqlaccdep .= "VALUES ('$ArtID_arr[ArtID]','$acc_id[AccID]')";
$DBO->exec($sqlaccdep);
echo "mache insert in aacdep mit Artid -" . $ArtID_arr['ArtID'] . "- und Accid -" .$acc_id['AccID']."- <br>";
}
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
}
vielen Dank und viele Grüße
hawk
Hello,
also selbst wenn ich es mit "try" and "catch"
das würde aus meiner Sicht allerhöchstens dafür sprechen, dass die Klasse Fehler selbst fängt und nicht als nackte Exception wirft. Das hat aber auch IMHO nichts mit mysql_error zu tun. Schaue bitte in der Referenz des Objektes nach, wie man Datenbankfehlermeldungen abfragt!
$sqlaccdep = "INSERT INTO accdep (ArtID,AccID) ";
$sqlaccdep .= "VALUES ('$ArtID_arr[ArtID]','$acc_id[AccID]')";
echo "mache insert in aacdep mit Artid -" . $ArtID_arr['ArtID'] . "- und Accid -" .$acc_id['AccID']."- <br>";
MfG
Rouven
Hallo Rouven,
auch dir danke für deine Hilfe,
- warum würdest du im echo deine Variablen so ganz anders ansprechen wollen als innerhalb des Statements (assoziatives Array 'AccID" vs nicht definierte Konstante AccID, Konkatenieren vs. auf Interpretation im String setzen)?
da hast du natürlich recht,
ich hatte das nur kurz zum posten hier verwendet. Im Original hatte ich ursprünglich das Ganze mit "bindParam" gemacht.
Doch zurück zum Problem.
Ich habe es nun gefunden.
Ziemlich einfach und doch doof :-)
weiter unten im Script bzw. in einer anderen includierten Datei prüfe ich nochmals auf doppelte Einträge in dieser Tabelle und lösche alle raus.
Daher hat man mit phpMYAdmin nie was gesehen. Mir ist es nur aufgefallen weil die fortlaufende ID sich erhöht hatte.
Ich muss da noch ein paar Sachen im Script ändern, bzw die Prüfungen optimieren.
Danke nochmals an alle.
vielen Dank und viele Grüße
hawk