2010-01-15 21 views
5

Estoy trabajando en la construcción de un pequeño script php/mysql que funcionará como un blog de WordPress pero será solo un pequeño sitio para mis ojos solo para almacenar fragmentos de código PHP. Entonces tendré categorías y luego páginas con código de muestra que escribo con un resaltador de sintaxis de JavaScript. En lugar de almacenar mis fragmentos de código php en el archivo, quiero guardarlos en MySQL DB. Entonces, ¿cuál es la mejor manera de guardar PHP en mysql y sacarlo de mysql para mostrar en la página?¿Cómo puedo almacenar código PHP dentro de una tabla mysql?

Mi resultado final será algo como esto
alt text http://img2.pict.com/c1/c4/69/2516419/0/800/screenshot2b193.png


Actualización:

yo no estaba segura de si tenía que hacer algo especial para el código antes de enviarlo a MySQL desde tiene todos los diferentes tipos de caracteres

+0

er ... ¿sabía que PHP tiene un resaltador de sintaxis incorporado? http://php.net/highlight-string – Powerlord

+0

No entiendo tu pregunta. ¿Estás preguntando cómo almacenar y recuperar algo de una base de datos MySQL? –

Respuesta

3

Si no está utilizando algún tipo de capa de abstracción de base de datos, simplemente llame al mysql_real_escape_string en el texto.

+0

genial esto es lo que estaba pensando – JasonDavis

+0

¿Se requiere 'mysql_real_escape_string' con mysql' text' datatype? –

10

Simplemente almacene en un campo text, como está. No mucho más allá de eso.

+1

¿Se requiere 'mysql_real_escape_string' con el tipo de datos' text' de mysql? –

2

¿Desea poder buscar el código php? Si es así, recomiendo usar el tipo de tabla MyISAM ya que es compatible con full text indexes (InnoDB no lo hace). Sus opciones para el tipo de columna cuando se trata de un índice fulltext son char, varchar y text. Me gustaría ir con text ya que los fragmentos de código pueden ser demasiado largos para los otros tipos.

Otro punto que vale la pena mencionar es asegurarse de escaparse correctamente de todos los códigos php (o de cualquier valor) antes de insertarlos. La mejor forma de hacerlo es mediante consultas parametrizadas.

+0

No downvoting. Pero si esto es cierto, es una pena que en MySQL solo MyISAM sea compatible con índices de texto completo. Esto significa que tendrá que perder transacciones, integridad referencial ... – ChristopheD

+0

@ChristopheD: Muy cierto. Sería bueno ver el soporte 'fulltext' en InnoDB. – Asaph

+0

Ahora es compatible :) –

0

A menos que me falta parte del problema, debe guardarlo como un campo TEXTO en una base de datos MySQL. Simplemente haga absolutamente seguro desinfecte los fragmentos de código, ya que el código PHP en particular es bastante probable que contenga los caracteres que escaparán de una cadena SQL. (Si ya está usando un marco SQL, es probable que el framework lo esté haciendo por usted)

0

Prueba esto:

mysql select ... 

eval('?>' . $row['phpcode'] . '<?php '); 
Cuestiones relacionadas