WEB언어/PHP

PHP mysql_real_escape_string사용하지 않는 방법

saltdoll 2017. 10. 13. 15:32
반응형

PHP에서는 SLQ Injection을 위해서,  mysql_real_escape_string를 많이 사용했다.

그러나, PHP 5.5부터 사용이 규제 되었고, PHP 7.0에서는 사라져 버렸다.


해당 부분을 처리하기 위한 방법

Its pretty simple really:

$db = new PDO($dsn, $user, $password);
$stmt = $db->prepare('INSERT INTO table1 VALUES(?,?)');
$stmt->execute(array($keyword, $guideline));
$stmt->close();

$stmt2 = $db->prepare('SELECT * FROM table2 WHERE keyword= ?');
$stmt->execute(array($keyword));
while(false !== ($row = $stmt->fetch())) {
   // do stuff
}

Note that you can also use named placeholders which can help make your code a bit more readable though a bit more verbose:

$stmt2 = $db->prepare('SELECT * FROM table2 WHERE keyword= :keyword');
$stmt2->execute(array(':keyword' => $keyword));


출처: https://stackoverflow.com/questions/11310945/php-changing-from-mysql-real-escape-string-to-pdo-prepared-statements


반응형
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)