Zwei Insert-Befehle nacheinander

3Dnavigator

Erfahrenes Mitglied
Hallo Zusammen

Bei folgendem Code wird jeweils nur der erste Eintrag in der MySQL-DB getätigt - ich erhalte aber keine Fehlermeldung. Weshalb

Ich hab's schon mit einem sleep(1); dazwischen versucht, aber das hat leider nicht geklappt...

Grüsse,
3Dnavigator

PHP:
mysql_query("INSERT INTO takes VALUES('$now','$familyname','$firstname','$status','$null','')");
mysql_query("INSERT INTO log VALUES('$now','$action','$_SESSION[xtranet]','')");
 
Auf den ersten Blick sieht das eigentlich ok aus, eventuell machst du mal ein mysql_query(...)or die(mysql_error()); daraus um zu sehen ob MySQL das auch alles annimmt. Im Prinzip müsstest du auch beide Querys in ein mysql_query() packen können.
 
Accris hat Recht:

Code:
mysql_query("INSERT INTO takes VALUES('".$now."','".$familyname."','".$firstname."','".$status."','".$null."','')");
mysql_query("INSERT INTO log VALUES('".$now."','".$action."','".$_SESSION['xtranet']."','')");

<- einfach mal testen...

Weiterhin sollte man immer prüfen, ob das Query auch ausgeführt wurde.
Die 2. Zeile hätte sicher einen Fehler geworfen.

Des weiteren empfehle ich dir das Insert zu indizieren,
um zu verhindern, dass die Werte in die falschen Spalten rutschen,
also:
Code:
INSERT INTO table (col1, col2, col3) VALUES ('val1', 'val2', 'val3')

Kann man dann bei längeren Querys wie folgt schreiben:
Code:
INSERT INTO table (
                      col1, 
                      col2, 
                      col3
                  ) VALUES (
                      'val1', 
                      'val2', 
                      'val3'
                  )

Gruß
 
Zuletzt bearbeitet:
Die Session erhält inden eckigen Klammern keine ' also keine Anführungszeichen.
Dann müsste es arbeiten
AFAIK unwichtig, oder?
In diesem Fall sogar falsch. Nur wenn zusätzlich geschweifte Klammern gesetzt werden, sind Anführungszeichen (egal welchen Typs) notwendig:
PHP:
$foo = array('bar'=>'foobar');
echo "$foo[bar]";     // korrekt
echo "$foo['bar']";   // falsch, führt zu einem Parse-Fehler
echo "{$foo[bar]}";   // falsch, führt zur Annahme, dass „bar“ eine Konstante sei
echo "{$foo['bar']}"; // korrekt
 
Hey vielen Dank Euch!

Ich habe nun den Insert indexiert und eine Tabellenzelle von "name" zu "familyname" umbenannt - nun funktionierts tip-top!

Grüsse,
3Dnavigator
 
Zurück