0
摘要/背景
我試圖做一個搜索引擎,可以搜索MySQL中的任何字符。但我遇到以下問題:如何在MySQL中搜索反斜槓()標記和零(0)?
- 當我嘗試搜索反斜槓(\)標記時,結果是不需要的。 (結果顯示許多數據不包含反斜槓)
- 當我嘗試搜索數字零(0)時,無論內容是什麼,結果都是NONE。
我嘗試
我試圖說明問題。以下是代碼。
<?
$search="\\"; //The searching word. (Here I wanna search for the word backslash (\).)
$link=mysql_connect("localhost","xxx","ooo");
mysql_select_db("xxx",$link);
if($search){
$str="select xxx from Sheet where xxx like '%$search%'";
$list=mysql_query($str,$link);
while(list($xxx)=mysql_fetch_row($list)){
echo $xxx."<br>";
}
}
mysql_close($link);
?>
在我的數據庫
下面的數據是在我的數據庫中的數據:(xxx是數據表Sheet
領域)
+-------------------------------------------+
| xxx |
+===========================================+
| Happy % ^_^ |
| Hello! \Hello\ |
| /\?"' |
| [email protected]#$%^&*()_+|}{":?><`1234567890-=\][';/.,|
| Oh! My God!!! |
+-------------------------------------------+
按理來說,PHP的頁面應該打印結果如下:
Hello! \Hello\
/\?"'
[email protected]#$%^&*()_+|}{":?><`1234567890-=\][';/.,
但實際上結果是:
Happy % ^_^
[email protected]#$%^&*()_+|}{":?><`1234567890-=\][';/.,
爲什麼會發生這樣的?
類似的問題
You can change this by specifying another escape character, as in:
SELECT * FROM titles where title LIKE 'test\\' ESCAPE '|'
在這回答者建議增加「ESCAPE‘|’」中的SQL語句的結束,但整個問題不會得到解決。它只是將相同的問題傳遞給另一個字符(|)。那麼有沒有更好的方法來解決問題?
,你可能會得到這樣的錯誤:'PHP解析錯誤:語法錯誤,意想不到的「localhost」(T_STRING)在第3行的/public_html/test.php' –
然後你必須考慮PHP解析器 – gerrytan
所吃的反斜槓但是結果與上面相同。 它仍然顯示這兩個結果:'快樂%^ _ ^'和 '〜!@#$%^&*()_ + |} {「:?><1234567890 - = \] ['; /。, ' –