Konstante aus der Datenbank wird nicht als solche behandelt

xtramen01

Erfahrenes Mitglied
Hallo Leute,

brauche mal einen Rat.
Ist es irgendwie möglich eine Konstante z.b. DIES_IST_EINE_KONSTANTE, in der Datenbank zu speichern und auch wieder als solche ausgeben zu lassen?

Wenn ich die Konstante ausgeben lasse z.b. mit $foo['bar'], dann wird diese auch genau so ausgegeben, also als DIES_IST_EINE_KONSTANTE .
Wenn ich die Konstante normal ausgeben lasse dann funktioniert es.

Muss unter Umständen die DB Tabelle ein bestimmtes Format haben? Momentan benutze ich Varchar.

Gruss
 
Was willst du?
Den Namen einer Variablen in der Datenbank speichern und dann im Code eintragen.

PHP:
<?php

$werte = Array("eins", "zwei", "drei");

$eins = 1;
$zwei = 2;
$drei = 3;

echo $$werte[0];

?>
 
Es geht darum die Dateinamen als Konstante in der DB zu speichern.
Die Konstanten sind in einer PHP Datei schon definiert.

Falls sich nun ein Dateiname ändert dann muss ich diesen nicht extra in der Db abändern sondern nur in der PHP Datei.
Es gibt mir aber nicht die Definition der KOnstante aus, sondern so wie es in der DB gespeichert wurde.

Beispiel:
PHP:
define(DIES_IST_DER_DATEINAME, 'dateiname.php');

echo DIES_IST_DER_DATEINAME;

Ergebnis ist: dateiname.php

Wenn ich aber die Konstante in der DB speichere "DIES_IST_DER_DATEINAME" dann sieht das leider so aus:

PHP:
$konstante_aus_der_db = $die['konstante'];

echo $konstante_aus_der_db;

Ergenis ist: DIES_IST_DER_DATEINAME

Gruß
 
Ok dann mache es so wie ich oben geschrieben habe:

PHP:
$konstante_aus_der_db = $die['konstante'];
// beachte das doppelte $$
echo $$konstante_aus_der_db;

Aber abgesehen davon. Speichere wie in diesem Fall den Dateinamen gleich in der Datebank und nicht nochmal separat als Konstante.
 
$$ geht nicht, da die Konstante keine Variable ist.

Aber mit eval geht es
PHP:
define ('C_KONST', 'Inhalt');
//Simulation des Auslens aus der DB
$dbValue = 'C_KONST';

//Auswerten der Konstante
echo eval("return {$dbValue};");
 
Zurück