라이브러리

[PHP] mysql_escape_string - mysql_query에서 사용할 문자열을 이스케이프합니다.




MySQL_escape_string 이란?

MySQL_escape_string은 PHP에서 MySQL 데이터베이스와 통신할 때 사용하는 함수입니다. 이 함수는 사용자 입력 데이터를 MySQL 쿼리에서 사용할 수 있도록.escape 시킵니다. MySQL_escape_string은 MySQL 4.1.3 이상에서 사용할 수 있는 함수입니다.

MySQL_escape_string 사용 이유

MySQL_escape_string은 사용자 입력 데이터를 MySQL 쿼리에서 사용할 때 중요합니다. 사용자 입력 데이터가 MySQL 쿼리에서 사용되면 SQL 인젝션 공격에 취약해질 수 있습니다. MySQL_escape_string은 사용자 입력 데이터를 escape 시켜 SQL 인젝션 공격을 방지합니다.

예제

#hostingforum.kr
php

// 사용자 입력 데이터

$username = $_POST['username'];

$password = $_POST['password'];



// MySQL_escape_string 사용

$username = mysql_escape_string($username);

$password = mysql_escape_string($password);



// MySQL 쿼리

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



// MySQL 쿼리 실행

$result = mysql_query($query);



// 결과 출력

if ($result) {

    echo "로그인 성공!";

} else {

    echo "로그인 실패!";

}



주의사항

MySQL_escape_string은 PHP 5.5.0부터 deprecated되었으며, PHP 7.0.0부터는 사용할 수 없습니다. 대신, PDO 또는 MySQLi를 사용하는 것을 권장합니다.

PDO 예제

#hostingforum.kr
php

// 사용자 입력 데이터

$username = $_POST['username'];

$password = $_POST['password'];



// PDO 연결

$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');



// PDO 쿼리

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

$stmt->bindParam(':username', $username);

$stmt->bindParam(':password', $password);

$stmt->execute();



// 결과 출력

if ($stmt->rowCount() > 0) {

    echo "로그인 성공!";

} else {

    echo "로그인 실패!";

}



MySQLi 예제

#hostingforum.kr
php

// 사용자 입력 데이터

$username = $_POST['username'];

$password = $_POST['password'];



// MySQLi 연결

$conn = new mysqli('localhost', 'username', 'password', 'mydb');



// MySQLi 쿼리

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

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

$stmt->execute();



// 결과 출력

if ($stmt->affected_rows > 0) {

    echo "로그인 성공!";

} else {

    echo "로그인 실패!";

}



결과적으로, MySQL_escape_string 대신 PDO 또는 MySQLi를 사용하는 것을 권장합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색