昨天在看我的google快訊時看到了php中的這個函數,發現我好像對這個函數不是特別的瞭解嗎
查看了手冊,發現了這個函數主要是轉義了數據庫中的特殊字符,比如 ' 單引號 " 雙引號等在數據庫中的特殊的字符
當然了這個addslashes使用是要先檢查magic_quotes_gpc這個的系統配置了,如果配置了就必須不能在使用了,如果兩次轉就不對了,所以一般代碼是這樣寫的
if (!
get_magic_quotes_gpc
()) {
$lastname
=
addslashes
(
$_POST
[
'lastname'
]);
} else {
$lastname
=
$_POST
[
'lastname'
];
}
可我突然想這些轉義符好像在mssql數據庫裏不是這樣的啊,像雙引號是根本不用轉的,單引號也是變成了兩個個單引號啊,看到網站下面確實是這樣啊,不需要的而且是多此一舉的,而且這個默認有是開着的,如果我要操作mssql數據庫不是很麻煩嗎
是有個函數可以轉化回來的 striplashes 可以去掉轉義符號的
看來php是專門爲mysql數據庫設計的啊
在看striplashes 看到了這樣一個例子
<?php
$str
=
"Is your name O/'reilly?"
;
// Outputs: Is your name O'reilly?
echo
stripslashes
(
$str
);
?>
$str
=
"Is your name O//'reilly?"
;
這樣的語句試一下竟然是一樣的我還試了
$str
=
"Is your name O/a'reilly?"
;
這樣的也是能夠正常輸出反斜槓的,想了下感覺是如果不能轉義是反斜槓就是反斜槓啊,這樣的定義正是有點彆扭啊