У меня есть код и его ответственность за поле поиска для поиска данных в таблице mysql. вопрос его чувствителен к регистру, я посмотрел на сайте автора и где они предлагают перейти от LIKE к ILIKE, однако это вызывает поиск не работаетОшибка поиска в MySQL
/*
* Filtering
* NOTE this does not match the built-in DataTables filtering which does it
* word by word on any field. It's possible to do here, but concerned about efficiency
* on very large tables, and MySQL's regex functionality is very limited
*/
$sWhere = "";
if (isset($_GET['sSearch']) && $_GET['sSearch'] != "")
{
$sWhere = "WHERE (";
for ($i=0 ; $i<count($aColumns) ; $i++)
{
if (isset($_GET['bSearchable_'.$i]) && $_GET['bSearchable_'.$i] == "true")
{
$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string($_GET['sSearch'])."%' OR ";
}
}
$sWhere = substr_replace($sWhere, "", -3);
$sWhere .= ')';
}
/* Individual column filtering */
for ($i=0 ; $i<count($aColumns) ; $i++)
{
if (isset($_GET['bSearchable_'.$i]) && $_GET['bSearchable_'.$i] == "true" && $_GET['sSearch_'.$i] != '')
{
if ($sWhere == "")
{
$sWhere = "WHERE ";
}
else
{
$sWhere .= " AND ";
}
$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string($_GET['sSearch_'.$i])."%' ";
}
}
Вы должны использовать PDO или MySQLi с подготовленными заявлениями вместо функций mysql_, они были устаревшее. – Fredd
http://stackoverflow.com/questions/2876789/case-insensitive-for-sql-like-wildcard-statement – Fredd
Измените таблицу, чтобы использовать сортировку без учета регистра. Стандартные таблицы MySQL (и сравнение) нечувствительны к регистру. Чувствительность к регистру - это то, что вы специально настраиваете для системы. –