程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 關於Mysql查詢帶單引號及拔出帶單引號字符串成績

關於Mysql查詢帶單引號及拔出帶單引號字符串成績

編輯:MySQL綜合教程

關於Mysql查詢帶單引號及拔出帶單引號字符串成績。本站提示廣大學習愛好者:(關於Mysql查詢帶單引號及拔出帶單引號字符串成績)文章只能為提供參考,不一定能成為您想要的結果。以下是關於Mysql查詢帶單引號及拔出帶單引號字符串成績正文


Mysql查詢帶引號和不帶引號差別
當數據庫字段ID為整型時
select ID from table where ID=1

select ID from table where ID='1'
兩條sql都是可以的,然則第一條sql不消停止隱式轉換,速度上比第二條sql略快一些

明天在向mysql數據庫中拔出帶單引號字符串的時刻,甚麼錯也沒報就是語句履行掉敗,後來才曉得,單引號等要本義,可使用函數:mysql_real_escape_string和addslashes函數;
以下做個引見:往數據庫中拔出數據之前是要先本義的,在拔出數據庫. 

本文很好的解釋了addslashes和mysql_real_escape_string的差別,固然國際許多PHP coder仍在依附addslashes避免SQL注入,我照樣建議年夜家增強中文避免SQL注入的檢討。addslashes的成績在於黑客可以用0xbf27來取代單引號,而addslashes只是將0xbf27修正為0xbf5c27,成為一個有用的多字節字符,個中的0xbf5c仍會被看做是單引號,所以addslashes沒法勝利攔阻。

固然addslashes也不是毫無用途,它是用於單字節字符串的處置,多字節字符照樣用mysql_real_escape_string吧。

別的關於php手冊中get_magic_quotes_gpc的舉例:

<?php
if (!get_magic_quotes_gpc()) {
$lastname = addslashes($_POST["lastname"]);
} else {
$lastname = $_POST['lastname'];
}
?>

最好對magic_quotes_gpc曾經開放的情形下,照樣對$_POST['lastname']停止檢討一下。
再說下mysql_real_escape_string和mysql_escape_string這2個函數的差別:
mysql_real_escape_string 必需在(PHP 4 >= 4.3.0, PHP 5)的情形下能力應用。不然只能用 mysql_escape_string ,二者的差別是:
mysql_real_escape_string 斟酌到銜接確當前字符集,而mysql_escape_string 不斟酌。
總結一下:
addslashes() 是強行加;
mysql_real_escape_string() 會斷定字符集,然則對PHP版本有請求;
mysql_escape_string不斟酌銜接確當前字符集。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved