phpbar.de logo

Mailinglisten-Archive

[php] eval() führt ibase_query() nicht aus

[php] eval() führt ibase_query() nicht aus

Andi Voss andi at andis.mine.nu
Fre Jun 24 04:48:39 CEST 2005


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