簡體   English   中英

PHP中不區分大小寫的搜索

[英]case insensitive search in php

我在網站上使用了一個小的搜索腳本。

發布搜索表格后,我得到這個變量:

$var = $_GET[$q] ;
$trimmed = trim($var); 

然后我嘗試在數據庫中搜索:

$query = "select * from test where acc like \"%$trimmed%\""; 
$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);
.......

我嘗試搜索“測試”一詞。 (在我的數據庫中,我有一排“ Test”字樣。)但是什么也沒找到。 如果我搜索“測試”,則什么也沒有。 只有這樣,如果我在數據庫中精確搜索單詞,我才能得到結果。 (測試)。

我在某處讀到,“ LIKE”不區分大小寫。

您能幫我修改一下代碼以區分大小寫嗎?

謝謝。

區分大小寫的文檔

默認字符集和排序規則為latin1和latin1_swedish_ci,因此默認情況下非二進制字符串比較不區分大小寫。 這意味着,如果使用col_name LIKE'a%'搜索,則將獲得以A或a開頭的所有列值。 要使此搜索區分大小寫,請確保其中一個操作數具有區分大小寫或二進制排序規則。 例如,如果要比較均具有latin1字符集的列和字符串,則可以使用COLLATE運算符使兩個操作數具有latin1_general_cs或latin1_bin排序規則

區分大小寫取決於表的排序規則:

SHOW CREATE TABLE test

這是一個開始-檢查表是否區分大小寫。 我將它留給其他人來提高您的示例代碼的安全性。

這可以幫助您。

http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html

順便說一句,您應該使用mysqli對象在PHP中執行SQL請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM