php harf duyarsız arama

3 Cevap php

Benim sitede küçük bir arama komut dosyası kullanabilirsiniz.

Sonra arama formunu gönderebilir, ben bu değişkeni olsun:

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

Sonra ben veritabanında arama deneyin:

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

Ben "test" sözcüğü aramak için deneyin. (Benim veritabanında i. "Test" sözcüğü ile bir satır var) ama hiçbir şey bulunamadı. I "TEST" arama sonra hiçbir şey. I veritabanı için tam kelime arama eğer ancak o zaman ben sonuç almak. (Test).

Ben "GİBİ" harf duyarsız olduğunu, bir yerde okudum.

Beni ben vaka duyarsız aramak için, kodu değiştirebilirsiniz var yardım eder misiniz?

Teşekkür ederim.

3 Cevap

Case-duyarlılığı sizin tablo harmanlama bağlıdır:

SHOW CREATE TABLE test

Bu bir başlangıç ​​- kontrol sizin tablonun harfe duyarlı olup olmadığını. Ben harp-on için kod örneği nasıl güvensiz hakkında başkalarına bırakacağım.

Bu size yardımcı olabilir.

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

Arada, PHP SQL isteği gerçekleştirmek için mysqli nesne kullanmanız gerekir.

Doc on case sensitivity:

Varsayılan karakter seti ve harmanlama latin1 ve latin1_swedish_ci, böylece nonbinary dize karşılaştırmaları varsayılan harf büyüklüğüne duyarsızdır. Bu 'bir%' gibi col_name ile arama yaparsanız, A veya bir ile başlayan tüm sütun değerlerini almak anlamına gelir. Bu arama harf duyarlı yapmak için, işlenen bir harf duyarlı veya ikili harmanlama sahip olduğundan emin olun. Hem latin1 karakter kümesi var, bir sütun ve bir dize karşılaştırma Örneğin, sen latin1_general_cs veya latin1_bin harmanlama ya işlenen neden HARMANLA operatörünü kullanabilirsiniz