Mailinglisten-Archive |
Hallo, ich hab ein komisches Problem und weiss nicht mehr weiter: Hab einen PHP-CLI TCP/IP-Server und nen Clienten. Schicke von dem Clienten (ebenfalls CLI) komplette SQL-Querys in Textform zum Server und dieser soll diese dann ausführen. Mit SELECT-Statements klappt das auch wunderbar - bekomme immer die korrekten Ergebnisse. Aber sobald ich INSERT,UPDATE,DELETE-Statements habe, werden diese zwar ausgeführt, es kommt auch keine Fehlermeldung, aber in der DB hat sich nix geändert.!? Das ist ne Firebirddatenbank auf einem Linux-Rechner. ibase_errmsg() wirft nix aus und echo ibase_query() gibt true bzw. 1 aus. Wenn ich genau den gleichen Query durch ein anderes Test-Skript ausführen lasse, funktioniert es einwandfrei und die Daten sind in der DB entsprechend geändert. Die Datenbankverbindung ist identisch (kopiert und nicht geändert). define( "host", "localhost" ); define( "user", "SYSDBA" ); define( "pass", "xxxx" ); define( "charset", "WIN1252" ); /* absoluter Pfad zur Datenbank */ $db = $host . ':/opt/interbase/data/euro.GDB'; ibase_pconnect( $db,$user,$pass,$charset ); Ein Rechteproblem kann es nicht sein, da das andere Skript, welches nicht in dem TCP/IP-Server hängt, die Aktion richtig durchführt. Es handelt sich um ganz banale Aktionen wie zum Beispiel: INSERT INTO UPDATE_DEF (id,artikelnr) values (GEN_ID(andi_gen,1),'MULTIPLO2S') GEN_ID() ist eine Funktion von Firebird, die ein autoincrement darstellt. Der folgende Code: -------- code --------- echo "SQL: '" . $buf . "'\n"; $query = ibase_query( $buf ); echo ibase_errmsg(); if( FALSE == $query ) { echo "false\n"; } else { echo "erfolg\n"; } echo "Query: '" . $query . "'\n"; -------- code --------- ergibt diese Ausgabe auf der Konsole des Servers: --------- ausgabe ---------- SQL: 'INSERT INTO UPDATE_DEF (id,artikelnr) values (GEN_ID(andi_gen,1),'MULTIPLO2S')' erfolg Query: '1' --------- ausgabe ---------- aber die Daten in der DB sind nicht geändert worden. Ich habe testweise schonmal den SQL-String in eine Datei geschrieben und diese dann wieder ausgelesen, um das Statement auf diese Art zu verwenden, aber ohne Erfolg bzw. gleiches Ergebnis. Hat da jemand Erfahrung mit so einem Problem oder weiss woran das liegen könnte? Danke schonmal Gruss Andi
php::bar PHP Wiki - Listenarchive