PHP 환경에서 MySQL 및 MariaDB 테이블 생성 방법 (MySQLi 및 PDO)
페이지 정보

본문
PHP 스크립트를 통해 MySQL 또는 MariaDB 데이터베이스에 새로운 테이블을 생성하려는 운영자와 개발자를 위해, MySQLi(객체지향·절차적)와 PDO 방식을 활용한 구체적인 코드 예제와 확인 방법을 안내합니다.
PHP 환경에서 MySQL 및 MariaDB 테이블 생성 방법
PHP에서 MySQL이나 MariaDB에 연결하여 새로운 테이블을 생성할 때는 주로 MySQLi 객체지향 방식, MySQLi 절차적 방식, 그리고 PDO 방식 중 하나를 선택하여 CREATE TABLE SQL 문을 실행합니다.
1. MySQLi 객체지향 방식
객체지향 스타일을 사용하여 데이터베이스에 연결하고 query() 메서드로 테이블을 생성하는 예제입니다.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 연결 생성
$conn = new mysqli($servername, $username, $password, $dbname);
// 연결 확인
if ($conn->connect_error) {
die("Connection failed: ". $conn->connect_error);
}
// 테이블 생성 SQL
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: ". $conn->error;
}
$conn->close();
?>
2. MySQLi 절차적 방식
함수 호출 위주의 절차적 스타일을 선호하는 경우 mysqli_connect()와 mysqli_query() 함수를 사용합니다.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 연결 생성
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 연결 확인
if (!$conn) {
die("Connection failed: ". mysqli_connect_error());
}
// 테이블 생성 SQL
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: ". mysqli_error($conn);
}
mysqli_close($conn);
?>
3. PDO 방식
다양한 데이터베이스 드라이버를 지원하는 PDO(PHP Data Objects)를 사용하여 예외 처리 기반으로 테이블을 생성하는 방식입니다.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// PDO 에러 모드를 예외로 설정
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 테이블 생성 SQL
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
// 결과가 반환되지 않으므로 exec() 사용
$conn->exec($sql);
echo "Table MyGuests created successfully";
} catch(PDOException $e) {
echo $sql. "<br>". $e->getMessage();
}
$conn = null;
?>
PHP 환경에서 MySQL 및 MariaDB 테이블 생성 방법
PHP 환경에서 MySQL이나 MariaDB에 새로운 테이블을 생성하려면 MySQLi 객체지향 방식, MySQLi 절차적 방식, 또는 PDO 방식을 사용하여 데이터베이스에 연결한 뒤 CREATE TABLE SQL 구문을 실행하면 됩니다.
1. MySQLi 객체지향 방식
new mysqli()를 통해 연결을 생성하고, $conn->query($sql)을 호출하여 테이블을 생성합니다.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: ". $conn->connect_error);
}
// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: ". $conn->error;
}
$conn->close();
?>
2. MySQLi 절차적 방식
mysqli_connect() 함수로 연결하고 mysqli_query() 함수로 SQL을 실행합니다.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: ". mysqli_connect_error());
}
// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: ". mysqli_error($conn);
}
mysqli_close($conn);
?>
3. PDO 방식
new PDO()를 통해 연결하고 에러 모드를 설정한 뒤 $conn->exec($sql)을 호출합니다.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
// use exec() because no results are returned
$conn->exec($sql);
echo "Table MyGuests created successfully";
} catch(PDOException $e) {
echo $sql. "<br>". $e->getMessage();
}
$conn = null;
?>
4. 테이블 생성 확인 방법
스크립트 실행 후 데이터베이스에 테이블이 정상적으로 생성되었는지 확인하려면 phpMyAdmin 같은 DB 관리 프로그램을 이용하거나 SQL 명령어를 직접 실행할 수 있습니다.
- phpMyAdmin 이용: 웹호스팅 환경 등에서 제공하는 phpMyAdmin에 로그인한 후, 좌측 메뉴에서 생성한 데이터베이스를 선택하고 새로 생성된 테이블명을 클릭하면 컬럼 구조를 확인할 수 있습니다.
- SHOW TABLES 명령어 사용: MySQL 터미널이나 SQL 쿼리 창에
SHOW TABLES;명령어를 입력하여 데이터베이스 내 전체 테이블 목록을 조회할 수 있습니다.
함께 보면 좋은 글
- PHP 및 그누보드에서 MySQL 마지막 PK(autoincrement) 값 획득 방법
- PHP 에러 제어 연산자(@) 사용법과 MySQL 에러 메시지 숨기기
- PHP MySQL 데이터 패치 함수 비교: mysqlfetchrow와 mysqlfetcharray 차이점과 올바른 사용법
참고자료
기타 참고자료
- 이전글PHP 프레임워크 트렌드 및 주요 특징 비교 26.10.11
- 다음글PHP 문자열 대소문자 변환 함수 총정리 (strtolower, strtoupper, mb 함수) 26.10.11
댓글목록
등록된 댓글이 없습니다.