Как я могу хранить PHP-код внутри таблицы MySQL - PullRequest
5 голосов
/ 15 января 2010

Я работаю над созданием небольшого скрипта php / mysql, который будет вести себя как блог WordPress, но для моих глаз будет просто небольшим сайтом, на котором будут храниться фрагменты кода PHP. Поэтому у меня будут категории, а затем страницы с образцом кода, который я напишу с помощью подсветки синтаксиса JavaScript. Вместо того, чтобы хранить мои фрагменты php-кода в файле, я хочу сохранить их в MySQL DB. Итак, каков наилучший способ сохранить PHP в mysql и вывести его из mysql для отображения на странице?

Мой конечный результат будет примерно таким
альтернативный текст http://img2.pict.com/c1/c4/69/2516419/0/800/screenshot2b193.png


Обновление:

Я просто не был уверен, нужно ли мне делать что-то особенное с кодом перед отправкой его в mysql, поскольку в нем есть все виды символов

Ответы [ 6 ]

10 голосов
/ 15 января 2010

Просто сохраните в поле text, как есть. Не намного более того.

3 голосов
/ 15 января 2010

Если вы не используете какой-либо слой абстракции базы данных, просто вызовите mysql_real_escape_string для текста.

2 голосов
/ 15 января 2010

Хотите ли вы искать код php? Если это так, я рекомендую использовать табличный тип MyISAM, поскольку он поддерживает полнотекстовые индексы (InnoDB не поддерживает). Вы можете выбрать тип столбца для индекса fulltext char, varchar и text. Я бы пошел с text, так как ваши фрагменты кода могут быть слишком длинными для других типов.

Еще один момент, о котором стоит упомянуть: убедитесь, что вы правильно экранировали весь php-код (или любое значение в этом отношении) перед тем, как вставить его. Лучший способ сделать это - использовать параметризованные запросы.

0 голосов
/ 04 декабря 2010

Попробуйте это:

mysql select ...

eval('?>' .  $row['phpcode'] . '<?php ');
0 голосов
/ 15 января 2010

Сохранить как текст (varchar) в базе данных.

Используйте каскадную таблицу стилей (css) для форматирования кода.

http://qbnz.com/highlighter/

0 голосов
/ 15 января 2010

Если я не пропустил часть проблемы, вы должны безопасно хранить его как поле TEXT в базе данных MySQL. Просто сделайте абсолютно уверенным , что вы дезинфицируете фрагменты кода, так как в частности PHP-код, скорее всего, будет содержать символы, которые будут выходить из строки SQL. (Если вы уже используете SQL-фреймворк, скорее всего, фреймворк сделает это за вас.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...