bluetonix CMS에서 PHP와 MySQL 연결
이 튜토리얼에서는 고유한 데이터베이스 테이블을 생성하고 이를 CMS 페이지와 연결하는 방법을 다룹니다. 실용적인 예제를 통해 SQL 명령어 INSERT, REPLACE, SELECT 및 UPDATE를 배우고, HTML 자리 표시자를 통해 웹사이트에 데이터베이스 값을 출력하는 방법을 익힙니다.
예제 페이지 만들기
이 튜토리얼을 위해 먼저 새로운 예제 페이지를 만드세요.
예:
PHP MySQL 예제
페이지는 처음에 완전히 비어 있을 수 있습니다.
그 다음 일반 HTML 편집기에서 페이지를 열고 임의의 페이지 섹션을 추가하세요. 이 HTML 영역은 나중에 데이터베이스에서 불러온 데이터를 위한 템플릿 역할을 합니다.
데이터베이스 테이블 생성
데이터를 저장하기 전에 자체 데이터베이스 테이블이 필요합니다.
이를 위해:
데이터베이스 → 새 테이블
이 예제에서는 ID, 날짜, 제목, 설명 및 이미지 열이 있는 테이블을 사용합니다.
ID는 데이터 레코드의 고유 ID를 포함합니다. 날짜는 날짜 및 시간을 저장합니다. 제목은 제목을 포함하고, 설명은 긴 설명 텍스트를 포함하며, 이미지는 이미지 이름을 포함합니다.
테이블, 열 및 변수 이름은 항상 개발자 튜토리얼 내에서 영어로 사용해야 합니다.
PHP 코드 열기
테이블이 만들어진 후, 예제 페이지로 돌아갑니다.
거기에서:
PHP 코드
이 영역에서 직접 데이터베이스에 접근할 수 있습니다.
INSERT 또는 REPLACE로 데이터 저장
첫 번째 예제에서는 이전에 생성한 데이터베이스 테이블에 데이터 레코드를 저장합니다.
필요한 PHP 변수를 먼저 설정하세요.
예시:
$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";
이 값들은 이후에 MySQL 준비된 문을 사용하여 저장할 수 있습니다.
데이터베이스 접근을 위해서는 기본적으로 준비된 문을 사용하는 것이 좋습니다. 이렇게 하면 값이 실제 SQL 명령과 분리되어 처리됩니다.
REPLACE를 사용한 예시:
$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

그 후 페이지를 한 번 호출합니다.
그 다음에:
데이터베이스 → 보기
거기에서 새로 생성된 데이터 항목이 표시되어야 합니다.
INSERT와 REPLACE의 차이
INSERT는 새로운 데이터 항목을 추가합니다.
이미 동일한 고유 ID 또는 기본 키를 가진 데이터 항목이 존재하면 일반적인 INSERT는 중복 키 오류를 유발할 수 있습니다.
REPLACE는 동일한 고유 ID를 가진 기존 데이터를 교체할 때 사용할 수 있습니다.
고정 ID로 테스트 예제를 위해서는 REPLACE가 더 실용적입니다. 페이지를 여러 번 호출할 수 있기 때문입니다.
SELECT로 데이터 읽기
다음 단계에서는 저장된 데이터 항목을 다시 데이터베이스에서 읽습니다.
예시:
$stmt = $mysqli->prepare("SELECT `Date`, Title, Description, Image FROM ExampleTable WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();
if($row = $result->fetch_assoc()) {
$Date = $row["Date"];
$Title = $row["Title"];
$Description = $row["Description"];
$Image = $row["Image"];
}
읽어온 값들은 이후에 변수 $Date, $Title, $Description 및 $Image에 저장됩니다.
데이터베이스와 $LayoutHTML 연결
전역 CMS 변수 $LayoutHTML는 렌더링 과정 중 현재 생성된 페이지의 HTML을 포함합니다.
이를 통해 HTML 코드 내에서 MySQL 테이블의 데이터로 자신의 플레이스홀더를 대체할 수 있습니다.
HTML 코드에 플레이스홀더 설정
다시 예시 페이지의 HTML 코드를 엽니다.
이전에 삽입한 페이지 섹션의 내용은 이제 자신만의 플레이스홀더로 대체할 수 있습니다.
예:
__MyDate__
__MyTitle__
__MyDescription__
__MyImage__
간단한 HTML 예시:
<section>
<div class="container">
<img src="__MyImage__" alt="">
<small>__MyDate__</small>
<h2>__MyTitle__</h2>
<p>__MyDescription__</p>
</div>
</section>

이 첫 번째 MySQL 예제를 위해 기존 번역 태그는 먼저 제거할 수 있습니다. 이렇게 하면 어떤 내용이 PHP와 MySQL로 직접 대체되는지 쉽게 확인할 수 있습니다.
레이아웃에 데이터베이스 값 삽입
데이터가 SELECT로 로드된 후, $LayoutHTML 내의 플레이스홀더를 교체합니다.
예시:
$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);
절차는 다음과 같습니다:
MySQL 데이터베이스 → SELECT → PHP 변수 → str_replace() → $LayoutHTML → 완성된 웹사이트

이렇게 하면 데이터베이스의 내용이 기존 HTML 레이아웃 내에 직접 표시됩니다.
데이터베이스를 통해 직접 변경 사항 테스트
열기:
데이터베이스 → 보기
이후 기존 데이터 레코드를 편집하십시오.
예를 들어 My Title의 제목을 New My Title으로 변경할 수 있습니다.
해당 BX-Image-Button을 통해 이미지를 변경할 수 있습니다.
저장하고 웹페이지를 다시 로드한 후 변경된 데이터가 페이지 레이아웃에 직접 표시됩니다.
이를 통해 다음과 같은 직접 연결이 이루어집니다:
데이터베이스 → PHP → $LayoutHTML → 웹사이트
UPDATE로 데이터 변경
UPDATE를 사용하여 기존의 데이터 레코드를 PHP를 통해 직접 변경할 수 있습니다.
이때 어떤 데이터 레코드를 변경할지를 조건으로 설정합니다.
업데이트 실행 후 SELECT를 사용하여 데이터를 다시 로드하고, 이후 $LayoutHTML을 통해 페이지에 표시할 수 있습니다.
요약
PHP와 MySQL을 사용하여 bluetronix CMS 내에서 데이터를 저장, 읽고, 변경할 수 있습니다.
INSERT 또는 REPLACE는 데이터를 저장하며, SELECT는 데이터를 읽고, UPDATE는 기존 데이터 레코드를 변경합니다.
$LayoutHTML을 통해 로드된 데이터를 기존 HTML 구조에 직접 삽입할 수 있습니다.
이로 인해 데이터베이스 내용을 CMS 페이지의 HTML 레이아웃과 깔끔하게 연결할 수 있습니다.
FAQ
고객들이 자주 묻는 질문
이 PHP 및 MySQL 튜토리얼에 무엇이 필요합니까?
bluetronix CMS에 대한 개발자 접근이 필요합니다. 또한 CMS 사이트 렌더링 프로세스가 어떻게 작동하는지, 변수 $LayoutHTML의 역할을 알고 있어야 합니다.
새로운 데이터베이스 테이블은 어디에서 생성합니까?
CMS에서 데이터베이스 → 새 테이블 섹션을 엽니다.
예제에서 어떤 열이 사용됩니까?
튜토리얼에서는 ID, Date, Title, Description 및 Image 열이 사용됩니다.
Prepared Statements를 사용하는 이유는 무엇입니까?
Prepared Statements는 전달된 값을 실제 SQL 명령어와 분리하여 데이터베이스 접근에 적합하도록 설계되었습니다.
INSERT와 REPLACE의 차이는 무엇입니까?
INSERT는 새로운 데이터 레코드를 추가합니다. REPLACE는 동일한 고유 ID 또는 기본 키를 가진 기존 데이터 레코드를 대체할 수 있습니다.
데이터베이스에서 데이터를 어떻게 읽습니까?
이를 위해 SELECT 명령어를 사용합니다. 로드된 값은 이후 $Title, $Description 또는 $Image와 같은 PHP 변수에 저장할 수 있습니다.
MySQL 데이터가 페이지의 HTML에 어떻게 들어가나요?
먼저 HTML 코드에 나만의 플레이스홀더를 설정한 후, 그 안에 로드된 데이터베이스 값을 사용하여 $LayoutHTML 내에서 str_replace()로 바꿉니다.
데이터베이스와 웹사이트 간의 연결이 작동하는지 어떻게 확인할 수 있나요?
데이터베이스 → 보기를 열고, 기존 데이터 기록을 수정한 후, 웹사이트를 다시 로드하세요. 새로운 값이 페이지 레이아웃에 바로 나타나야 합니다.
UPDATE는 무엇에 사용되나요?
UPDATE를 사용하면 PHP를 통해 이미 존재하는 데이터 기록을 직접 변경할 수 있습니다.
데이터베이스의 이미지를 페이지 레이아웃에도 사용할 수 있나요?
네. 예제에서는 이미지 값이 변수 $Image에 저장되고, $LayoutHTML 내의 __MyImage__와 같은 플레이스홀더를 통해 사용됩니다.