라이브러리

[PHP] mysqli::escape_string - mysqli_real_escape_string의 별칭




mysqli::escape_string 이란?

mysqli::escape_string은 MySQLi 확장 함수로, 사용자 입력 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게.escape_string 함수는 MySQLi 확장 함수로, 사용자 입력 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게 처리합니다. 이 함수는 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게 처리합니다.

mysqli::escape_string 사용 이유

MySQLi::escape_string 함수를 사용하는 이유는 MySQL 쿼리에 사용자 입력 데이터를 삽입할 때 SQL 인젝션 공격을 방지하기 위해서입니다. SQL 인젝션 공격은 악의적인 사용자가 SQL 쿼리를 조작하여 데이터베이스를 손상시키거나 데이터를 탈취하는 공격입니다.

mysqli::escape_string 예제

#hostingforum.kr
php

<?php

// MySQLi 연결

$mysqli = new mysqli("localhost", "username", "password", "database");



// 사용자 입력 데이터

$username = "John Doe";

$password = "password123";



// MySQLi::escape_string 함수 사용

$escaped_username = $mysqli->real_escape_string($username);

$escaped_password = $mysqli->real_escape_string($password);



// MySQL 쿼리 실행

$query = "SELECT * FROM users WHERE username = '$escaped_username' AND password = '$escaped_password'";

$result = $mysqli->query($query);



// 결과 출력

if ($result->num_rows > 0) {

    while ($row = $result->fetch_assoc()) {

        echo "ID: " . $row["id"] . " Name: " . $row["username"] . " Password: " . $row["password"] . "
";

    }

} else {

    echo "0 results";

}



// MySQLi 연결 닫기

$mysqli->close();

?>



위 예제에서 `$mysqli->real_escape_string()` 함수를 사용하여 사용자 입력 데이터를 안전하게 처리합니다. `$mysqli->real_escape_string()` 함수는 MySQLi 확장 함수로, 사용자 입력 데이터를 MySQL 쿼리에 삽입하기 전에 데이터를 안전하게 처리합니다.

mysqli::escape_string vs. prepared statement

mysqli::escape_string 함수는 사용자 입력 데이터를 안전하게 처리하지만, prepared statement를 사용하는 것이 더 안전하고 효율적입니다. prepared statement는 사용자 입력 데이터를 쿼리에서 분리하여 SQL 인젝션 공격을 방지합니다.

#hostingforum.kr
php

<?php

// MySQLi 연결

$mysqli = new mysqli("localhost", "username", "password", "database");



// 사용자 입력 데이터

$username = "John Doe";

$password = "password123";



// prepared statement

$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ? AND password = ?");

$stmt->bind_param("ss", $username, $password);

$stmt->execute();

$result = $stmt->get_result();



// 결과 출력

if ($result->num_rows > 0) {

    while ($row = $result->fetch_assoc()) {

        echo "ID: " . $row["id"] . " Name: " . $row["username"] . " Password: " . $row["password"] . "
";

    }

} else {

    echo "0 results";

}



// MySQLi 연결 닫기

$mysqli->close();

?>



위 예제에서 prepared statement를 사용하여 사용자 입력 데이터를 안전하게 처리합니다. prepared statement는 사용자 입력 데이터를 쿼리에서 분리하여 SQL 인젝션 공격을 방지합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 381 페이지

검색

게시물 검색