exécuter du code PHP contenu dans du SQL

hanselmault
Invité n'ayant pas de compte PHPfrance

04 févr. 2013, 12:56

Bonjour

Plutot que de mettre des if-then-else dans ma page PHP (j'aurai une centaine de test à faire), j'aimerai mettre mon code PHP dans une bdd mysql. C'est tout à fait faisable, mais comment exécuter ce code stoqué dans SQL?
Exemple de mon code:
$recu=$_GET['race'];
if ($recu == "")
{ } else {
$retour = mysql_query("SELECT * FROM pages WHERE page='" . $recu . "'");
while ($donnees = mysql_fetch_array($retour) )
{
echo $donnees['corps'];
// exécuter le code contenu dans $donnees['code']
// ce code peut avoir par exemple "$bonjour=1; echo 'coucou le monde' . 'etc';"
}

Eléphant du PHP | 453 Messages

04 févr. 2013, 22:17

:shock:

Mais bon si tu veux vraiment avoir du code pour qu'ensuite tu l'utilises : eval(). Mais bon eval() est à éviter -> lourd et c'est une faille de sécurité. Je vois pas du tout l'intérêt (stocker ton code dans un fichier php ou un fichier mysql pour qu'ensuite tu le ressors ?)
donc : :shock: et :non:
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

hanselmault
Invité n'ayant pas de compte PHPfrance

05 févr. 2013, 11:50

Hé bien je liste pour l'utilisateur une partie de ce qui a été enregistré dans le SQL. Ensuite, un code est a exécuter en fonction de son choix, et ce n'est jamais le même code. Donc sur ma page plutot que de mettre des CASE multiplié par le nombre de ligne dans SQL (400 lignes pour le moment et ça augmente de jour en jour), je préfère avoir une colonne de plus dans mon sql et mettre le code correspondant là dedans. Je pourrais en effet le mettre dans ma page, mais faire 400 CASE rendra le tout limite illisible.

ViPHP
xTG
ViPHP | 7331 Messages

05 févr. 2013, 13:46

Regardes du côté des fonctions... C'est justement fait pour factoriser le code.