>  기사  >  백엔드 개발  >  PHP는 데이터베이스 쿼리문을 실행합니다.

PHP는 데이터베이스 쿼리문을 실행합니다.

WBOY
WBOY원래의
2023-05-06 18:08:08758검색

PHP는 풍부한 데이터베이스 작업 API가 내장된 매우 인기 있는 서버측 프로그래밍 언어입니다. 개발자에게 있어 PHP를 능숙하게 사용하여 데이터베이스를 운영할 수 있는 능력은 매우 중요한 기술입니다. 이 기사에서는 PHP에서 데이터베이스 쿼리 문을 실행하는 방법에 중점을 둘 것입니다.

1. 데이터베이스 연결

PHP에서 데이터베이스 연결은 주로 mysqli나 PDO를 사용합니다. 다음은 mysqli를 사용하여 MySQL 데이터베이스에 연결하는 샘플 코드입니다.

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检查连接是否成功
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

2. 쿼리 문 실행

데이터베이스에 성공적으로 연결되면 SQL 쿼리 문 실행을 시작할 수 있습니다. 다음은 mysqli를 사용하여 쿼리 문을 실행하는 샘플 코드입니다.

<?php
$sql = "SELECT id, name, email FROM users";
$result = mysqli_query($conn, $sql);

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

mysqli_close($conn);
?>

위 코드에서는 SELECT 문을 사용하여 데이터베이스에서 데이터를 읽고 mysqli_fetch_assoc() 함수를 통해 연관 배열에 데이터를 저장합니다. 마지막으로 while 루프 순회를 통해 쿼리 결과가 출력됩니다.

3. SQL 주입 공격 방지

데이터베이스 쿼리문 실행 시 SQL 주입 공격에 특별한 주의가 필요합니다. 아무런 보호 조치를 취하지 않을 경우 악의적인 사용자가 악의적인 SQL 문을 삽입하여 데이터 변조, 삭제 등 불법적인 작업을 수행할 수 있습니다. 따라서 실제 개발에서는 SQL 주입 공격을 피하기 위해 준비된 문을 사용하여 SQL 문을 사전 컴파일해야 합니다. 다음은 mysqli prepare 문을 사용하여 쿼리문을 실행하는 샘플 코드입니다.

<?php
$stmt = $conn->prepare("SELECT id, name, email FROM users WHERE email= ? ");
$email = "john@example.com";
$stmt->bind_param("s", $email);
$stmt->execute();

$result = $stmt->get_result();
if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$stmt->close();
$conn->close();
?>

위 코드에서는 먼저 prepare() 함수를 사용하여 SQL 문을 프리컴파일하고, 쿼리 조건을 find_param을 통해 SQL 문에 바인딩했습니다. () 방법. 마지막으로 get_result() 함수를 통해 쿼리 결과를 얻고, fetch_assoc() 메서드를 사용하여 데이터를 가져옵니다.

요약

이번 글에서는 mysqli와 PDO를 이용해 PHP에서 데이터베이스에 접속하고 쿼리문을 실행하여 SQL 인젝션 공격을 예방하는 방법을 소개했습니다. 이러한 기술을 배우고 익히면 PHP 개발 시 데이터베이스를 보다 능숙하게 운영하고 개발 효율성과 보안성을 향상시킬 수 있습니다.

위 내용은 PHP는 데이터베이스 쿼리문을 실행합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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