Mailinglisten-Archive |
Hallo, ich habe ein "kleines" Problem mit eval(), mit dem ich mich schon die halbe Nacht herumschlage. Ich muss für ibase_query() einen String zusammenbauen und ausführen lassen, aber es will und will nicht klappen: ------------------------------ $trans = ibase_trans(); $func_string = 'ibase_query( $trans, $exp_string[0]'; for( $b = 0; $b < $anz; $b += 1 ) { ${"blh".$b} = ibase_blob_create( $dbh ); ibase_blob_add(${"blh".$b}, $exp_blob[$b]); ${"blobid".$b} = ibase_blob_close( ${"blh".$b} ); $func_string .= ', $blobid'.$b.''; } $func_string .= ')'; echo eval("\$query = \$func_string;")."\n\n\n"; ibase_commit( $trans ); ----------------------------------- Dieses echo eval bringt nichts hervor. Keine Fehlermeldung, kein garnix. Gebe ich $func_string mit echo aus, bekomme ich das hier: $query = ibase_query( $trans, $exp_string[0], $blobid0, $blobid1, $blobid2, $blobid3, $blobid4, $blobid5, $blobid6, $blobid7) Also ohne ";" am Ende. Das ";" wird in eval schon hinzugefügt. Kopiere ich diesen String von $func_string und lasse diesen direkt ausführen (ohne eval), klappt alles wunderbar. Der Ibase-Query ist also fehlerfrei, der hier produziert wird. Ich bekomm das nur nicht durch eval ausgeführt. Mach ich einen einfachen eval-Funktionstest: eval("\$nr=2;"); echo $nr; bekomme ich 2 ausgegben, also eval funktioniert schon. Ich habe ungefähr 100 Myriaden von Syntax-Varianten ausprobiert... Hat da jemand einen Tip? Gibts da vielleicht was in Verbindung mit Datenbanken zu beachten? Ich hab auf jedenfall nichts gefunden, was geholfen hat. Danke Gruss Andi
php::bar PHP Wiki - Listenarchive