2010-01-15 2 views
5

나는 작은 블로그/wordpress blog처럼 행동 할 mysql 스크립트를 만들려고 노력하고 있습니다 만, PHP 코드를 저장하기위한 작은 사이트가 될 것입니다. 그래서 카테고리와 샘플 코드를 가지고 자바 스크립트 구문 형광펜을 사용하여 페이지를 작성합니다. PHP 코드 스 니펫을 파일에 저장하는 대신 MySQL DB에 저장하려고합니다. 그렇다면 mysql에 PHP를 저장하고 mysql에서 페이지에 표시하는 가장 좋은 방법은 무엇입니까?어떻게 mysql 테이블에 PHP 코드를 저장할 수 있습니까?

내 최종 결과는이
alt text http://img2.pict.com/c1/c4/69/2516419/0/800/screenshot2b193.png 같은 것


업데이트 : 이후 MySQL의로 보내기 전에 코드에 특별한 무언가를 할 필요가있는 경우

난 그냥 확실하지 않았다 그것에는 모든 종류의 문자가 있습니다.

+0

어 ... 당신은 PHP가 내장 된 구문 하이 라이터를 가지고 있음을 알고 계십니까? http://php.net/highlight-string – Powerlord

+0

질문을 이해할 수 없습니다. MySQL 데이터베이스에서 무언가를 저장하고 검색하는 방법을 묻는 질문이 있으십니까? –

답변

3

데이터베이스 추상화 계층을 사용하지 않는 경우 텍스트에 mysql_real_escape_string을 호출하기 만하면됩니다.

+0

대단한 일입니다. – JasonDavis

+0

mysql'text' 데이터 타입에 mysql_real_escape_string이 필요합니까? –

10

그대로 text 필드에 저장하십시오. 그 이상은 아닙니다.

+1

mysql의'text' 데이터 타입에는 mysql_real_escape_string이 필요합니까? –

2

PHP 코드를 검색 할 수 있도록 하시겠습니까? 그렇다면 full text indexes을 지원하는 MyISAM 테이블 유형을 사용하는 것이 좋습니다 (InnoDB는 지원하지 않습니다). fulltext 색인에 대한 열 유형은 char, varchartext입니다. 코드 스 니펫이 다른 유형에 비해 너무 길어 질 수 있으므로 text으로 갈 것입니다.

언급 할 가치가있는 또 다른 포인트는 삽입하기 전에 모든 PHP 코드 (또는 해당 값)를 올바르게 이스케이프 처리해야합니다. 이를 수행하는 가장 좋은 방법은 매개 변수가있는 쿼리를 사용하는 것입니다.

+0

다운하지 않음. 그러나 이것이 사실이라면 MySQL에서는 MyISAM 만 전체 텍스트 인덱스를 지원한다는 것이 수치입니다. 이것은 트랜잭션, 참조 무결성을 잃어야 만한다는 것을 의미합니다 ... – ChristopheD

+0

@ChristopheD : 그렇습니다. InnoDB에서'fulltext' 지원을 보는 것이 좋을 것입니다. – Asaph

+0

이제 지원됩니다 :) –

0

문제의 일부가 누락되지 않는 한, MySQL 데이터베이스의 텍스트 필드로 안전하게 저장해야합니다. 을 확실히 작성하십시오. 특히 PHP 코드는 SQL 문자열에서 벗어날 문자를 포함 할 가능성이 높기 때문에 코드 조각을 삭제할 수 있습니다. (이미 SQL 프레임 워크를 사용하고 있다면 프레임 워크가이를 수행 할 확률이 높습니다.)

0

데이터베이스에 텍스트로 저장 (varchar).

CSS (Cascading Style Sheet)를 사용하여 코드 서식을 지정하십시오.

http://qbnz.com/highlighter/

0

이 시도 :

mysql select ... 

eval('?>' . $row['phpcode'] . '<?php '); 
관련 문제