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