>백엔드 개발 >PHP 튜토리얼 >PHP 데이터베이스 작업 기능 사용 팁

PHP 데이터베이스 작업 기능 사용 팁

WBOY
WBOY원래의
2023-06-16 10:52:531068검색

PHP는 동적 웹사이트, 웹 애플리케이션, 전자상거래 사이트 등 다양한 유형의 웹 애플리케이션을 구축하는 데 사용할 수 있는 널리 사용되는 서버측 스크립팅 언어입니다. 데이터베이스는 애플리케이션에 필요한 데이터를 저장하고 관리하는 데 사용되는 야심찬 웹 애플리케이션의 핵심입니다.

PHP에는 데이터베이스와 상호 작용하기 위한 많은 기능과 확장 기능이 있습니다. 이 기사에서는 PHP 데이터베이스 작업 기능을 사용하여 데이터베이스와 상호 작용하는 데 도움이 되는 몇 가지 팁을 소개합니다.

  1. 데이터베이스에 연결

PHP를 사용하여 데이터베이스에 연결하는 데 가장 일반적으로 사용되는 함수는 mysqli_connect()입니다. 이 함수의 프로토타입은 다음과 같습니다.

mysqli mysqli_connect ( string $host , string $username , string $passwd , string $dbname [, int $port = 3306 [, string $socket = '' ]] )

그 중 $host는 데이터베이스의 호스트 이름 또는 IP 주소를 나타내고, $username 및 $passwd는 데이터베이스 사용자 이름과 비밀번호, $dbname은 연결될 데이터베이스의 이름, $port는 포트 번호이고 $socket은 소켓 파일입니다.

데이터베이스 연결 예:

// 连接数据库
$mysqli = mysqli_connect("localhost", "root", "password", "mydatabase");

// 检查连接是否成功
if (!$mysqli) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
  1. SQL 문 실행

데이터베이스에 성공적으로 연결되면 다양한 SQL 문을 실행할 수 있습니다. PHP를 사용하여 SQL 문을 실행하는 두 가지 기본 방법은 mysqli_query()와 mysqli_prepare()입니다.

2.1 mysqli_query()

mysqli_query() 함수 프로토타입은 다음과 같습니다.

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

그 중 $link는 데이터베이스에 연결된 mysqli 객체를 나타내고, $query는 실행할 SQL문, $resultmode는 타입을 지정합니다. 결과 세트의.

SQL 쿼리문 실행 예:

$sql = "SELECT id, name FROM users";
$result = mysqli_query($mysqli, $sql);

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 results";
}

SQL insert, update, delete 문 실행 예:

// 插入数据
$sql = "INSERT INTO users (name, age) VALUES ('John', 25)";
if (mysqli_query($mysqli, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($mysqli);
}

// 更新数据
$sql = "UPDATE users SET age=30 WHERE name='John'";
if (mysqli_query($mysqli, $sql)) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . mysqli_error($mysqli);
}

// 删除数据
$sql = "DELETE FROM users WHERE id=3";
if (mysqli_query($mysqli, $sql)) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: " . mysqli_error($mysqli);
}

2.2 mysqli_prepare()

mysqli_prepare() 함수는 SQL 쿼리문을 준비하는 데 사용되지만 직접 실행하지는 않습니다. . 이는 SQL 주입 공격을 방지하는 데 도움이 될 수 있습니다. mysqli_stmt_bind_param() 함수를 통해 매개변수를 바인딩하고 mysqli_stmt_execute() 함수를 사용하여 쿼리를 실행해야 합니다.

mysqli_prepare() 함수 프로토타입은 다음과 같습니다.

mysqli_stmt mysqli_prepare ( mysqli $link , string $query )

그 중 $link는 데이터베이스에 연결된 mysqli 객체를 나타내고, $query는 실행될 SQL 쿼리문을 의미합니다.

SQL 쿼리 문 실행 예:

$sql = "SELECT id, name, age FROM users WHERE age > ?";
$stmt = mysqli_prepare($mysqli, $sql);

if ($stmt) {
    mysqli_stmt_bind_param($stmt, "i", $age);
    $age = 20;
    mysqli_stmt_execute($stmt);
    mysqli_stmt_bind_result($stmt, $id, $name, $age);

    while (mysqli_stmt_fetch($stmt)) {
        echo "id: " . $id . ", name: " . $name . ", age: " . $age;
    }

    mysqli_stmt_close($stmt);
} else {
    echo "Error in preparing statement: " . mysqli_error($mysqli);
}
  1. 데이터베이스 트랜잭션

데이터베이스 작업을 처리할 때 하나의 트랜잭션에서 여러 SQL 문을 실행해야 할 수도 있습니다. 이때 데이터베이스 트랜잭션은 매우 유용할 것입니다.

PHP를 사용하여 데이터베이스 트랜잭션을 수행하려면 다음 기능을 사용해야 합니다.

  • mysqli_autocommit(): 트랜잭션을 자동으로 커밋할지 여부를 설정합니다.
  • mysqli_commit(): 트랜잭션을 커밋합니다.
  • mysqli_rollback(): 트랜잭션을 롤백합니다.

예:

// 关闭自动提交事务
mysqli_autocommit($mysqli, FALSE);

// 执行多个SQL语句
mysqli_query($mysqli, "INSERT INTO users (name, age) VALUES ('John', 25)");
mysqli_query($mysqli, "UPDATE users SET age=30 WHERE name='John'");

// 如果所有SQL语句都成功执行,则提交事务
mysqli_commit($mysqli);
echo "Transaction committed successfully";

// 如果任何一个SQL语句执行失败,则回滚事务
mysqli_rollback($mysqli);
echo "Transaction rolled back because of failure";
  1. 데이터베이스 연결 닫기

데이터베이스 작업을 완료한 후에는 반드시 데이터베이스 연결을 닫아 리소스를 해제하세요.

mysqli_close() 함수를 사용하여 데이터베이스 연결을 닫습니다.

// 关闭数据库连接
mysqli_close($mysqli);
echo "Connection closed";

Summary

이 글에서는 PHP에서 데이터베이스 연결, SQL 문 실행, 트랜잭션 실행, 데이터베이스 연결 닫기 기술을 소개합니다. PHP는 데이터베이스와 상호 작용하기 위한 다양한 기능과 확장 기능을 제공합니다. 이러한 기능을 능숙하게 사용하면 웹 애플리케이션 작성 작업을 크게 단순화할 수 있습니다. 동시에 SQL 주입 및 기타 보안 취약점의 위험을 줄이기 위해 데이터베이스 운영 시 모범적인 보안 사례를 주의 깊게 따르십시오.

위 내용은 PHP 데이터베이스 작업 기능 사용 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.