當前位置:首頁 » 編程語言 » sql轉義函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql轉義函數

發布時間: 2022-06-08 06:15:56

1. sql需要轉義的字元有哪些

特殊轉義:單引號 -- 用2個單引號''

兩種比較常見的方式

(1)用中括弧[]轉義
WHERE ColumnA LIKE 'aaa[_]bbb' ---

(2)用關鍵字ESCAPE 轉義
WHERE ColumnA LIKE '%aaa/%bbb%' ESCAPE '/'

註:

1)方式2不如1方便,適用面也窄小,清晰度也差。

2)方式0在使用動態SQL,尤其是「嵌套 + 代碼生成」的高級應用中,很容易出錯

2. SQL語句中轉義字元怎麼寫

0、特殊轉義:單引號
--
用2個單引號''
兩種比較常見的方式
1、用中括弧[]轉義
WHERE
ColumnA
LIKE
'aaa[_]bbb'
---
2、用關鍵字ESCAPE
轉義
WHERE
ColumnA
LIKE
'%aaa/%bbb%'
ESCAPE
'/'
註:
A)方式2不如1方便,適用面也窄小,清晰度也差。
B)方式0在使用動態SQL,尤其是「嵌套
+
代碼生成」的高級應用中,很容易出錯。

3. SQL語句中轉義字元怎麼寫

兩種比較常見的方式 :1.用中括弧[ ]轉義。 2.用關鍵字ESCAPE 轉義。

4. sql 查詢結果轉義

select 編號 ,人員,
(case when 狀態='0' then '停用'
when 狀態='0' then '啟用'
end ) as
狀態 from 表

5. sql注入與轉義的php函數代碼

sql注入:
正常情況下:
delete.php?id=3;
$sql
=
'delete
from
news
where
id
=
'.$_GET['id'];
惡意情況:
delete.php?id=3
or
1;
$sql
=
'delete
from
news
where
id
=
3
or
1';
-------如此執行後,所有的記錄將都被刪除
應該採取相關措施。。。比如用之前先判斷是否是數字等等。
要使自己相信,從客戶端傳來的信息永遠是不可靠的!!
轉義:
有時候從客戶端傳來的數據,可能惡意包含些特殊的字元,比如單引號、斜杠等,所以需要轉義,轉義成普通的字元,此時就要用到string
addslashes
(
string
$str
),這個函數可以對某個變數進行轉義。但是,如果對數組里的元素進行轉義,就用foreach循環數組,如下:
復制代碼
代碼如下:
foreach($_POST
as
$k=>$v)
{

if(is_string($v))
{

$_POST[$k]
=
addslashes($v);

}
}
但是如果數組中還包含數組,那就要遞歸進行轉義了,此時用到
array_walk_recursive(array
&$input
,
callback
$funcname
[,
mixed
$userdata
])

將用戶自定義函數
funcname
應用到
array
數組中的每個單元。本函數會遞歸到更深層的數組中去。典型情況下
funcname
接受兩個參數。input
參數的值作為第一個,鍵名作為第二個。如果提供了可選參數
userdata,將被作為第三個參數傳遞給
callback
funcname。成功時返回
TRUE,
或者在失敗時返回
FALSE
也就是說:用自定義的函數,至少要能接收兩個參數,而addslashes()只能接收一個參數所以自定義一個函數如下:
復制代碼
代碼如下:
function
a(&$v,$k){
$v=addslashes($v);
}
array_walk_recursive(&$arr,'a');
系統自動轉義:
PHP中,有一個魔術引號的概念,如何打開?答:在PHP.ini中,magic_quotes_gpc=On;重啟apache即可
魔術引號被打開後,系統會自動對$_GET,$_POST,$_COOKIE數據進行轉義,在不知情的情況下,再次進行手動轉義的話,就轉多了,要想合理的進行轉義,就要首先判斷,魔術符號是否已經打開了,用magic_quotes_gpc()進行判斷,不需要傳值,關閉返回0,關閉返回1
復制代碼
代碼如下:
if(!get_magic_quotes_gpc())
{
//
如果魔術引號沒開

function
_addslashes(&$v,$k)
{


$v
=
addslashes($v);


}


array_walk_recursive(&$_GET,'_addslashes');

array_walk_recursive(&$_POST,'_addslashes');


array_walk_recursive(&$_COOKIE,'_addslashes');
}

6. php mysql轉義特殊字元的函數有哪些

PHP的介紹
PHP,是英文超文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種可以 HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,被廣泛地運用。自從PHP5開始,引入了面向對象的全部機制,並且保留了向下兼容性。
PHP的發展歷史
PHP原始為Personal Home Page的縮寫,現已經正式更名為 「PHP: Hypertext Preprocessor」的縮寫。注意不是「Hypertext Preprocessor」的縮寫,這種將名稱放到定義中的寫法被稱作遞歸縮寫。PHP於1994年由Rasmus Lerdorf創建,剛剛開始是Rasmus Lerdorf 為了要維護個人網頁而製作的一個簡單的用Perl語言編寫的程序。最初這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量。後來又用C語言重新編寫,包括可以訪問資料庫。他將這些程序和一些表單直譯器整合起來,稱為 PHP/FI。PHP/FI 可以和資料庫連接,產生簡單的動態網頁程序。
PHP的現狀
PHP作為最成熟的開源體系LAMP(Linux,Apache,MySQL,PHP)的重要一員,以其簡單性、開放性、低成本、安全性和適用性,受到越來越多的Web程序員的歡迎和喜愛。
PHP中提供了作為編碼語言所有的基本功能。此外,它還提供許多實用的功能,使得PHP比其他編程語言更適合動態網頁的開發。針對企業級Web應用,PHP也不斷地完善和增加新的功能。
PHP是開放源代碼的,這意味著其代碼的核心部分可以被免費使用。所有源碼、文檔可以在PHP官方網站上獲得。用戶可以自由復制、編譯、分發其拷貝。任何一個用PHP編寫的程序都屬於用戶自己,並且可以自行處理。
正式由於這種開源精神,才使PHP社區可以聚集眾多的愛好者,也使得PHP有如此迅猛的發展。PHP的更新速度,以及發現和修正錯誤的速度是非常迅速的。可以看到,幾乎每周都有一個新版本的PHP程序包發布。
目前,PHP的官方維護者和推動者Zend公司已經加快了PHP企業級應用的步伐。隨著PHP5的應用不斷擴大,Zend公司還將推出一個標準的PHP開發框架Zend Framework。通過這一框架,PHP開發者可以快速地構建Web應用。
PHP還具有優秀的平台兼容性。PHP源於UNIX系統平台,尤其是PHP、MySQL、 Apache和Linux組合,備受PHP愛好者的歡迎。不僅如此,PHP在Windows系列操作系統上也有出色的表現。其良好的程序界面、語言易用性等特點吸引了微軟的開發人員。目前,有消息稱未來的Windows . NET開發環境將集成PHP,這也意味著PHP的用戶群將日益壯大。
PHP是廣泛及通用的腳本語言,它尤其適合於Web開發。PHP是世界上主要的網路開發語言之一,運行在世界三分之一的伺服器上。它是從雅虎到Facebook等公司的平台選擇,也是共享主機上最廣泛的開發平台,為世界上數百萬的網站提供動力。
今天,已經有包括雅虎和亞馬遜等在內的數百萬網站,以及眾多的開發人員和編程愛好者正在使用PHP。從最初的PHP/FI到現在的PHP5,PHP的發展是及其迅猛的,其未來的發展前景也必定令人矚目。
隨著PHP5版本性能的提升,以及面向對象功能的完善,PHP也逐漸開始於面向企業級應用。PHP的發展前景將無限廣闊。
現在php5的最新版本為php5.4.3,較php5.3增強了安全特性,去掉了一些威脅安全的函數如global_register等,去掉了安全模式。
PHP的特點
PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
PHP安裝它可以比 CGI或者Perl更快速的執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;
PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的資料庫以及操作系統。
最重要的是PHP可以用C、C++進行程序的擴展!
PHP的優勢
開放的源代碼:所有的PHP源代碼事實上都可以得到。
PHP是免費的:和其它技術相比,PHP本身免費且是開源代碼。
php的快捷性:程序開發快,運行快,技術本身學習快。嵌入於HTML:因為PHP可以被嵌入於HTML語言,它相對於其他語言。編輯簡單,實用性強,更適合初學者。
跨平台性強:由於PHP是運行在伺服器端的腳本,可以運行在UNIX、LINUX、WINDOWS、Mac OS下。
效率高:PHP消耗相當少的系統資源。
圖像處理:用PHP動態創建圖像,PHP圖像處理默認使用GD2。不過也可以配置為使用image magick進行圖像處理。
面向對象:在php4,php5 中,面向對象方面都有了很大的改進,php完全可以用來開發大型商業程序。
專業專註:PHP支持腳本語言為主,同為類C語言

7. SQL 中ESCAPE的用法求簡單例子

SqL中使用 ESCAPE 關鍵字定義轉義符。當轉義符置於通配符之前時,該通配符就解釋為普通字元。例如:

1,要搜索「A_」開頭的所有內容,請使用下列語句。句中通過escap將「_」轉義,否則「_"為一個字元的通配符。

2,查找"%aa"開頭的所有內容,語為如下。下例語句中第一個"%"仍為通配符「%」,第二個通過「/」將後邊的「%」轉義為「%」,而不是通配符。

8. sql server中sql語句中單引號怎麼轉義

sql server有兩個轉義符:
' 默認情況下, '是字元串的邊界符, 如果在字元串中包含', 則必須使用兩個', 第1個'就是轉義符
另一個轉義符是"
當SET QUOTED_IDENTIFIER OFF時, "是字元串邊界符, 字元串中的"必須用兩個"表示。
vb: "" <= "
sql server 2000: ''' <= 'eg:declare @SearchType nvarchar(50)
declare @SearchString nvarchar(255)
declare @SearchKey nvarchar(50)
declare @SearchSql nvarchar(2000)
set @SearchType = '2'
set @SearchKey = 'd'
set @SearchString = CASE @SearchType
when '1' then '1 = 1'
when '2' then 'p.ProjectName like ''' + '%' + @searchkey + '%' + ''''
when '3' then 'p.ProjectCity like ''' + '%'+ @searchkey + '%' +''''
when '4' then 'c.CateName like ''' + '%' + @searchkey + '%' + ''''
when '4' then 'p.ProjectManager like ''' + '%' + @searchkey + '%' +''''ENDset @SearchSql = N'
SELECT p.*,datename(year,ProjectPostTime)+ ' + '''-''' + ' + datename(month,ProjectPostTime)+ '+ '''-''' + ' + datename(day,ProjectPostTime)' + ' as PostTime, m.EmpName,c.CateName FROM proProject As p ,mrBaseInf As m ,proCate c WHERE p.EmpID = m.EmpID and p.CateID = c.CateID and '
+ @SearchString

9. sql語句中如何插入轉義字元

只要在插入庫之前作處理就可以了。利用replace函數把單引號替換為其它字元,如str.replace("'","*");其中str是你加密後的字元串!

10. sql怎麼使用escape標識轉義符

在處理sql時,遇到insert 或update 的參數中含有特殊字元「&」,下劃線「_」, 單引號" ' "等時,要做轉義處理。

例:插入特殊字元'&'
update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'
兩個辦法:
1) update userinfo set pageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test'
2) update userinfo set pageurl='myjsp?page=1'||chr(38)||'pagesize=10' where id='test'
註:其中 || 是連字元, chr(38)跟ASCII的字元轉碼是一致的。

例:搜索以「QA_」開頭的數據 :
select CODE from CNT_CODELIST where code like 'QA_%'

結果為:QA_OFFICER_1,QA_OFFICER_2,QA112
不符合,必須把下劃線轉義

select CODE from CNT_CODELIST where code like 'QA/_%'escape '/'
結果為:QA_OFFICER_1,QA_OFFICER_2

轉義字元 % 處理手法如&

轉義字元 』單引號 在PL/SQL里兩個單引號等於一個單引號

補充:
SQL中escape的用法
使用 ESCAPE 關鍵字定義轉義符。 在模式中,當轉義符置於通配符之前時,該通配符就解釋為普通字元。
例如,要搜索在任意位置包含字元串 5% 的字元串: WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
前後兩個%作為通配符使用,中間的%經過ESCAPE 轉義,作為普通字元使用