MySQL поиск для

Мне нужно реализовать поиск в таблице MySQL по определенному слову, чтобы найти в определенном столбце (тип: текст).

Я думал, что самый простой способ сделать это:

$str = "something"; # let's say passed by POST or GET from a form
$sql = "select lala, textThing from table_name where dudu=1 and textThing LIKE %'$str'%";

Кажется, это работает нормально, если делать запрос вручную в mysql, но не на php через web. Это бросает

У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с "% seekString%" в строке 1

где искомая строка, ну, вы знаете, строка, которую я искал:)

Первый PHP выглядит так:

$str = NULL;


echo "<p>Search for a string</p>";
echo "<form name='formSearch' action='result.php' method='post'>";
echo "<input type='text' name='text' size='30'/>";
echo "<input type='submit' name='search' value='Search'/>";
echo "</form>";

Второй просто получает "текст" и делает mysql и должен показать данные

2 ответа

Решение

Вы должны поместить свое предложение LIKE между кавычками. Избегайте их в вашем php-коде так:

$sql = "select lala, textThing from table_name where dudu=1 and textThing LIKE \"%".$str."%\""

Вы должны включить% в кавычку или двойную кавычку.

$ sql = "выбрать lala, textThing из table_name, где dudu=1 и textThing LIKE"%$str%'";

или же

$sql = "select lala, textThing из table_name, где dudu=1 и textThing LIKE"%" + $str + "%'";

Другие вопросы по тегам