1. 程式人生 > >php防止sql註入

php防止sql註入

狀態 content fetch 字符集 param nbsp eth 轉義 lec

發布時間:9個月前熱度: 816 ℃評論數: 1

三個函數:

addslashes($string):用反斜線引用字符串中的特殊字符‘ " \

$username=addslashes($username);

mysql_escape_string($string):用反斜杠轉義字符串中的特殊字符,用於mysql_query()查詢。

$username=mysql_escape_string($username);

mysql_real_escape_string($string):轉義SQL語句中使用的字符串中的特殊字符,並考慮到連接的當前字符集,需要保證當前是連接狀態才能用該函數,否則會報警告。 不轉義%與_

$username=mysql_real_escape_string($username);

兩種選擇:

使用PDO

$stmt = $pdo->prepare(‘SELECT * FROM user WHERE name = :name‘);

$stmt->execute(array(‘:name‘ => $name));

foreach ($stmt as $row) {

// do something with $row

}

使用mysqli

$stmt = $dbConnection->prepare(‘SELECT * FROM user WHERE name = ?‘);

$stmt->bind_param(‘s‘, $name);

$stmt->execute();

$result = $stmt->get_result();

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

// do something with $row

}

php防止sql註入