PHP는 동적 웹사이트, 웹 애플리케이션, 전자상거래 사이트 등 다양한 유형의 웹 애플리케이션을 구축하는 데 사용할 수 있는 널리 사용되는 서버측 스크립팅 언어입니다. 데이터베이스는 애플리케이션에 필요한 데이터를 저장하고 관리하는 데 사용되는 야심찬 웹 애플리케이션의 핵심입니다.
PHP에는 데이터베이스와 상호 작용하기 위한 많은 기능과 확장 기능이 있습니다. 이 기사에서는 PHP 데이터베이스 작업 기능을 사용하여 데이터베이스와 상호 작용하는 데 도움이 되는 몇 가지 팁을 소개합니다.
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";
데이터베이스에 성공적으로 연결되면 다양한 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); }
데이터베이스 작업을 처리할 때 하나의 트랜잭션에서 여러 SQL 문을 실행해야 할 수도 있습니다. 이때 데이터베이스 트랜잭션은 매우 유용할 것입니다.
PHP를 사용하여 데이터베이스 트랜잭션을 수행하려면 다음 기능을 사용해야 합니다.
예:
// 关闭自动提交事务 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";
데이터베이스 작업을 완료한 후에는 반드시 데이터베이스 연결을 닫아 리소스를 해제하세요.
mysqli_close() 함수를 사용하여 데이터베이스 연결을 닫습니다.
// 关闭数据库连接 mysqli_close($mysqli); echo "Connection closed";
Summary
이 글에서는 PHP에서 데이터베이스 연결, SQL 문 실행, 트랜잭션 실행, 데이터베이스 연결 닫기 기술을 소개합니다. PHP는 데이터베이스와 상호 작용하기 위한 다양한 기능과 확장 기능을 제공합니다. 이러한 기능을 능숙하게 사용하면 웹 애플리케이션 작성 작업을 크게 단순화할 수 있습니다. 동시에 SQL 주입 및 기타 보안 취약점의 위험을 줄이기 위해 데이터베이스 운영 시 모범적인 보안 사례를 주의 깊게 따르십시오.
위 내용은 PHP 데이터베이스 작업 기능 사용 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!