6
votes

Comment puis-je stocker le code PHP à l'intérieur d'une table MySQL

Je travaille sur la construction d'un petit script PHP / mysql qui agira comme un blog WordPress mais sera simplement un petit site pour mes yeux uniquement pour stocker des extraits de code PHP. Je vais donc avoir des catégories, puis des pages avec un code d'échantillon que j'écris avec une syntaxe JavaScript surllighter. Au lieu de stocker mes extraits de code PHP dans le fichier, je veux les sauvegarder sur MySQL DB. Alors, quelle est la meilleure façon de sauver PHP dans MySQL et de le faire sortir de MySQL à afficher sur la page?

Mon résultat final sera quelque chose comme ça
Texte alt http://img2.pict.com/c1 /c4/69/2516419/0/800/screenshot2b193.png


mise à jour:

Je n'étais tout simplement pas sûr de si je devais faire quelque chose de spécial au code avant de l'envoyer à MySQL car il a tous différents types de caractères de celui-ci


2 commentaires

Je ne comprends pas votre question. Vous demandez-vous comment stocker et récupérer quelque chose dans une base de données MySQL?


er ... Saviez-vous que PHP a une syntaxe intégrée surligneur? PHP.net/Highlight -String


6 Réponses :


11
votes

Il suffit de stocker dans un champ , comme cela est. Pas beaucoup plus au-delà de cela.


1 commentaires

Est mysql_real_escape_string requis avec MySQL texte DataType?



2
votes

Voulez-vous pouvoir rechercher le code PHP? Si tel est le cas, je recommande d'utiliser le type de table myisam car il prend en charge Les index de texte (InnoDB ne le fait pas). Vos choix pour Type de colonne En ce qui concerne un index FullText sont char , varchar et texte . J'irais avec texte car vos extraits de code peuvent devenir trop longs pour les autres types.

Un autre point à mentionner, vous assurez-vous d'échapper correctement à tout code PHP (ou à toute valeur de cette matière) avant de l'insérer. La meilleure façon de faire est d'utiliser des requêtes paramétrées.


2 commentaires

Ne pas descendre. Mais si cela est vrai, il est dommage que, dans MySQL, Myisam prend en charge les index de texte intégral. Cela signifie que vous devrez perdre des transactions, une intégrité référentielle ...


@Christophed: si vrai. Ce serait bien de voir Fulltext Support à Innodb.



0
votes

Sauf si vous manquez une partie du problème, vous devez être en sécurité le stocker comme champ de texte dans une base de données MySQL. Il suffit de faire absolument sûr vous désinfectionnez les extraits de code, car le code PHP en particulier est assez susceptible de contenir les caractères qui échapperont à une chaîne SQL. (Si vous utilisez déjà un cadre SQL, les chances sont que le cadre vous fait cela pour vous.)


0 commentaires

4
votes

Si vous n'utilisez pas une sorte de couche d'abstraction de base de données, appelez simplement mysql_real_escape_string sur le texte.


2 commentaires

super c'est ce que je pensais


Est mysql_real_escape_string requis avec MySQL texte DataType?



0
votes

Stocker comme texte (varchar) dans la base de données.

Utiliser une feuille de style en cascade (CSS) pour formater le code.

http://qbnz.com/highlighter/


0 commentaires

0
votes

Essayez ceci:

mysql select ...

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


0 commentaires