라이브러리
[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를 사용하는 것을 권장합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.