Я работаю над созданием небольшого скрипта php / mysql, который будет действовать как блог wordpress, но будет просто небольшим сайтом для моих глаз, только чтобы хранить фрагменты кода PHP. Поэтому у меня будут категории, а затем страницы с образцом кода, который я пишу с помощью ярлыка синтаксиса javascript. Вместо того, чтобы хранить мои фрагменты кода php в файле, я хочу сохранить их в mysql DB. Итак, каков наилучший способ сохранить PHP в mysql и вывести его из mysql для показа на странице?
Мой конечный результат будет примерно таким
alt text http://img.ruphp.com/php/screenshot2b193.png
Обновить:
Я просто не был уверен, что мне нужно сделать что-то особенное для кода, прежде чем отправлять его в mysql, поскольку в нем есть все разные типы символов
Если вы не используете какой-либо слой абстракции базы данных, просто вызовите mysql_real_escape_string в тексте.
Просто сохраните в text
поле, как есть. Не намного больше этого.
Вы хотите, чтобы иметь возможность искать php-код? Если это так, я рекомендую использовать тип таблицы MyISAM, поскольку он поддерживает полнотекстовые индексы (у InnoDB нет). Ваш выбор типа столбца, когда дело доходит до fulltext
индекса, – это char
, varchar
и text
. Я бы пошел с text
как ваши фрагменты кода могли бы затянуться слишком долго для других типов.
Еще один момент, о котором стоит упомянуть, – убедиться, что вы правильно избегаете всех PHP-кода (или любого значения), прежде чем вставлять его. Лучший способ сделать это – использовать параметризованные запросы.
Если мне не хватает части проблемы, вы должны быть в безопасности, сохраняя ее как поле TEXT в базе данных MySQL. Просто убедитесь, что вы дезинфицируете фрагменты кода, так как PHP-код, в частности, скорее всего будет содержать символы, которые выйдут из строки SQL. (Если вы уже используете фреймворк SQL, вероятность того, что эта платформа делает это для вас.)
Храните как текст (varchar) в базе данных.
Используйте каскадную таблицу стилей (css) для форматирования кода.
Попробуй это:
mysql select ... eval('?>' . $row['phpcode'] . '<?php ');