본문 바로가기
PHP

[PHP] MySQL 연결 및 다루기 (MySQLi 방식)

by teamnova 2024. 3. 20.


PHP와 MySQL을 함께 사용하여 데이터베이스 기반 웹 애플리케이션을 개발할 때, 데이터베이스와의 통신은 필수적입니다. PHP에서 MySQL 데이터베이스와 상호작용하는 주된 두 가지 방법은 MySQL Improved Extension(MySQLi)와 PHP Data Objects(PDO)입니다. 이 글에서는 MySQLi 확장 기능을 사용한 연결 및 데이터베이스 다루기 방법에 초점을 맞추겠습니다.

MySQLi를 사용한 서버 연결
객체 지향 방식

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_dbname";

// 데이터베이스 연결
$conn = new mysqli($servername, $username, $password, $dbname);

// 연결 체크
if ($conn->connect_error) {
    die("연결 실패: " . $conn->connect_error);
}

echo "연결 성공";
?>


절차적 방식

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_dbname";

// 데이터베이스 연결
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 연결 체크
if (!$conn) {
    die("연결 실패: " . mysqli_connect_error());
}

echo "연결 성공";
?>


데이터베이스 다루기
레코드 추가

$sql = "INSERT INTO tablename (column1, column2) VALUES ('value1', 'value2')";
if ($conn->query($sql) === TRUE) {
    echo "새 레코드 추가 성공";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}


레코드 조회

Copy code
$sql = "SELECT column1, column2 FROM tablename";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // 출력 데이터
    while($row = $result->fetch_assoc()) {
        echo "column1: " . $row["column1"]. " - column2: " . $row["column2"]. "<br>";
    }
} else {
    echo "0 결과";
}


레코드 수정

$sql = "UPDATE tablename SET column1='newValue1' WHERE condition='value'";
if ($conn->query($sql) === TRUE) {
    echo "레코드 업데이트 성공";
} else {
    echo "Error updating record: " . $conn->error;
}


레코드 삭제

$sql = "DELETE FROM tablename WHERE condition='value'";
if ($conn->query($sql) === TRUE) {
    echo "레코드 삭제 성공";
} else {
    echo "Error deleting record: " . $conn->error;
}


서버 연결 종료

$conn->close();