Como ejecutar código php se que encuentra almacenado en una tabla de mysql

Gracias de antemano. Necesito interpretar desde un script en php, el código php que guardo en una tabla de MSQL. Pongo un ejemplo: $Link_ID =...

La FAQ Como ejecutar código php se que encuentra almacenado en una tabla de mysql tiene

Pertenece a la categoría:
Pregunta
Gracias de antemano.

Necesito interpretar desde un script en php, el código php que guardo en una tabla de MSQL.

Pongo un ejemplo:

$Link_ID = @mysql_connect($Host, $User, $Password);
mysql_select_db($Basedatos, $Link_ID);

$sql = " SELECT * FROM nombre_tabla WHERE id = 1" ;
$Query_ID = @mysql_query($sql, $Link_ID);
$Datos = @mysql_fetch_array($Query_ID);

echo $Datos[codigo] ;

/*
el valor que hay en $Datos[codigo] es:
for($i=0; $i < 10; $i++)
echo $i;
*/

Evidentemente al hacer echo $Datos[codigo] ; lo que sucede es que pinte en pantalla el código del bucle no lo ejecuta, y ese es precisamente lo que quiero.

Gracias por vuestra ayuda.
Respuesta de RNajera
Se me ocure que podrías crear el archivo con el codigo php al vuelo y despues llamarlo con un include() para ejecutarlo, claro que tendrias que tener una carpeta con derechos de creación/modificación y de ejecución para que esto funcione.

Un ejemplo sería (suponiendo que tienes un carpeta llamada tmp con derechos de ejecución):

$nombre_temp = tempnam("/tmp", "code");
$gestor = fopen($nombre_temp, "w");
fwrite($gestor, $Datos[codigo]);
fclose($gestor);
include($nombre_temp);
unlink($nombre_temp);

Ahora lo del bucle for() no me queda muy claro cual es la intención de ponerlo.

Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

PedroPezunas

18/11/2008
Puede serte util:

http://boozox.net/php/formas-de-ejecutar-funciones-en-php/

MOCMikat

18/11/2008
PHP te permite ejecutar tanto líneas de código como funciones contenidas dentro de cadenas, y por lo tanto dentro de arreglos.

Para ello se necesita utilizar la función eval(), ya que ella se encarga de evaluar y ejecutar en el caso posible el contenido de la cadena que se le pase como parámetro.

Un detalle a tomar en cuenta, es que todo el código ejecutado con eval() pasa a formar parte del script actual, por lo tanto si se requiere usar una función en una cadena básta con realizar un eval a la misma y posteriormente llamarla como si de una función escrita se tratara.

Un ejemplo sería el siguiente:

<?php
$codigo_php = array(
"for ( $i=0; $i<5; $i++ ) { echo "=> prueba de ejecución de lineas..."; }",
"function prueba() { echo "=> prueba de ejecución de función..."; }",
"function pruebas( $mensaje ) { echo "=> $mensaje : prueba de ejecución de función..."; }"
);

echo "<br>";
echo $codigo_php[0]; echo "<br>";
eval( $codigo_php[0] ); echo "<br>";

echo "<br>";
echo $codigo_php[1]; echo "<br>";
eval( $codigo_php[1] ); prueba(); echo "<br>";

echo "<br>";
echo $codigo_php[2]; echo "<br>";
eval( $codigo_php[2] ); pruebas("mensaje"); echo "<br>";
?>

Para una mayor información del uso de la función interna de PHP eval() te remito a la documentación del mismo: http://mx2.php.net/manual/es/function.eval.php

HectorWeb

18/11/2008
Que mas.
para poder ejecutar un codigo php que sacas de la BD debes ponerle la funcion eval(); esta funcion evalua una cadena como codigo php.

esto puede ser útil para almacenar código en un campo de texto en una base de datos para su ejecución posterior.

FAQ relacionadas

Para ver más FAQ relacionadas accede a las categorías:

Volver al árbol de categoríasVolver al árbol de categorías