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));
반응형