Nasıl bir mysql tablo içinde PHP kodu saklayabilirsiniz

6 Cevap php

Ben bir wordpress blog gibi bir şey hareket edecek ama sadece benim gözlerim için küçük bir site sadece mağaza PHP kod parçacıkları olacak küçük bir PHP / MySQL komut dosyası oluşturmaya çalışıyorum. Yani kategorileri ve sonra bir javascript sözdizimi vurgulayıcı yazmak örnek kodu ile sayfaları olacak. Bunun yerine dosyasında benim php kod parçacıkları saklamak ben DB MySQL onları kurtarmak isteyen. Yani mysql içine PHP kaydetmek ve sayfada göstermek için mysql dışarı almak için en iyi yolu nedir?

My end result will be something like this
alt text


Güncelleme:

Ben bunun karakter her çeşit beri mysql göndermeden önce kodu için özel bir şey yapmak gerekirse ben sadece emin değildim

6 Cevap

Veritabanı soyutlama katmanı çeşit kullanarak değilseniz, sadece metin üzerinde mysql_real_escape_string diyoruz.

Sadece olduğu gibi, bir text alanında depolar. Bunun ötesinde çok daha fazla değil.

Eğer php kodunu arama yapabilmek ister misiniz? Eğer öyleyse, ben full text indexes (InnoDB değil) destekler gibi MyISAM tablo türü kullanmanızı öneririz. Kolon tipi için seçenek bir fulltext göstergesi söz konusu olan char, varchar ve text. Kod parçacıkları diğer türleri için çok uzun alabilirsiniz gibi text ile gitmek istiyorum.

Kayda değer bir diğer nokta, bunu takmadan önce düzgün tüm php kodu (ya da bu konuda herhangi bir değer) kaçış emin olun. Bunu yapmanın en iyi yolu, parametreli sorguları kullanmaktır.

Ben sorunun bir kısmını eksik sürece, bir MySQL veritabanında bir metin alanı olarak saklayarak güvenli olmalıdır. Sadece Özellikle PHP kod SQL dize dışında kaçacak karakter içeren oldukça muhtemeldir gibi absolutely sure Eğer, kod parçacıkları sterilize olun. (Zaten bir SQL çerçevesini kullanarak yapıyorsanız, oran çerçeve sizin için bu yapıyor vardır.)

Veritabanında metin (varchar) olarak saklayın.

Kodunuzu biçimlendirmek için geçişli stil sayfası (css) kullanın.

http://qbnz.com/highlighter/

Bu deneyin:

mysql select ...

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