溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php應(yīng)用三個(gè)函數(shù)、兩種選擇來防止sql注入

發(fā)布時(shí)間:2020-11-04 14:12:00 來源:億速云 閱讀:141 作者:小新 欄目:編程語言

php應(yīng)用三個(gè)函數(shù)、兩種選擇來防止sql注入?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

三個(gè)函數(shù):

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

$username=addslashes($username);

2. mysql_escape_string($string):用反斜杠轉(zhuǎn)義字符串中的特殊字符,用于mysql_query()查詢。

$username=mysql_escape_string($username);

3. mysql_real_escape_string($string):轉(zhuǎn)義SQL語句中使用的字符串中的特殊字符,并考慮到連接的當(dāng)前字符集,需要保證當(dāng)前是連接狀態(tài)才能用該函數(shù),否則會(huì)報(bào)警告。 不轉(zhuǎn)義%與_

$username=mysql_real_escape_string($username);

兩種選擇:

1. 使用PDO

$stmt = $pdo->prepare('SELECT * FROM user WHERE name = :name');
$stmt->execute(array(':name' => $name));
foreach ($stmt as $row) {
// do something with $row
}

2. 使用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
}

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)php應(yīng)用三個(gè)函數(shù)、兩種選擇來防止sql注入大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI