Синтаксис поискового запроса php / mysql - PullRequest
2 голосов
/ 16 марта 2012

У меня проблема с поисковым запросом, $ s_query. Пользователь может искать тип (Дата, Название или Расположение), который соответствует столбцу в моей базе данных MySQL

$search_type =mysql_real_escape_string($_POST['type']);
$search_query =mysql_real_escape_string($_POST['search_query']);

if ($search_query == "") {
  echo "<p>Please enter a search...</p>";
  exit;}

$s_query = "SELECT * FROM `posts` WHERE `$search_type` == `$search_query` ";

$s_result1=mysql_query($s_query);

if (!$s_result1) {
    die('Invalid query: ' . mysql_error());
    //header ("Location: /UC_page.html");
}

$s_row = mysql_fetch_array($s_result1);
$s_num1=mysql_numrows($s_result1);
mysql_close();

mysql_error говорит: У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с '== 1956'

Я перепробовал все возможные операторы и любой синтаксис, который смог найти, но я застрял. В какой-то момент у меня появилась дата работы, но ни одной строки. заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 16 марта 2012

На самом деле у вас есть две проблемы. Во-первых, вы окружаете свое значение `, что недопустимо. Вместо этого используйте " или '.

Кроме того, == не является допустимым синтаксисом, вам нужно использовать один =. Хотя, глядя на то, что вы делаете, вы, вероятно, захотите вместо этого использовать LIKE для поиска без учета регистра.

Так что этот запрос должен работать:

SELECT * FROM `posts` WHERE `$search_type` = '$search_query'

Или с LIKE:

SELECT * FROM `posts` WHERE `$search_type` LIKE '$search_query'
3 голосов
/ 16 марта 2012

Вы ставите `(поверх кнопки табуляции) вокруг значения вставки. Те только выходят на поле. Вы должны использовать '(поверх косой черты) для значения.

0 голосов
/ 16 марта 2012

Это может помочь вам понять, какой запрос ожидает MySQL:

$s_query = "SELECT * FROM `posts` WHERE `" . $search_type . "` = " . $search_query;

Также убедитесь, что вы добавили необходимые кавычки в $search_query.EG: Если это строка, то окружите ее '.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...