с использованием предложения WHERE в качестве переменной в запросе MySQL не работает

Это действительно странно.

Очевидно, что этот запрос работает:

$query = mysql_query("SELECT * FROM restaurant_page WHERE title LIKE '%$search_title%'"); 

Но это не значит:

 $category = 'restaurant_page'; $query = mysql_query("SELECT * FROM '$category' WHERE title LIKE '%$search_title%'"); 

Со вторым запросом я получаю логическую ошибку ресурса.

$category – таблица, которую пользователь хочет выполнить. Когда я распечатываю запрос с переменной, это то же самое, что и первое. Почему бы не работать?

Related of "с использованием предложения WHERE в качестве переменной в запросе MySQL не работает"

Не используйте одинарные кавычки вокруг имени вашей таблицы, вместо этого используйте backticks ( ` ):

 $query = mysql_query("SELECT * FROM `$category` WHERE title LIKE '%$search_title%'"); 

NB. Пожалуйста, убедитесь, что $category и $search_title не являются $search_title пользователями.

Создает ли запрос, созданный с помощью переменной, кавычки из-за имени таблицы? Мне это кажется ошибкой.

в запросе mysql не ставьте кавычки вокруг категории $.

 $query = mysql_query("SELECT * FROM $category WHERE title LIKE '%$search_title%'"); 

Удалите одинарные кавычки из '$category' .

 "SELECT * FROM '$category' WHERE title LIKE '%$search_title%'" ---------------^^^^^^^^^^^^ 

Если необходимо, окружите $category обратными окнами. Это необходимо, только если $category содержит зарезервированное ключевое слово MySQL. Однако, поскольку это переменная, которая может стать возможной.

 $query = mysql_query("SELECT * FROM `$category` WHERE title LIKE '%$search_title%'"); 

Конечно, не забудьте выйти из $category так как это может быть пользовательский ввод. Мы предполагаем, что вы уже сделали это для $search_title .

 $category = mysql_real_escape_string($category); 

Почему у вас есть котировки вокруг категории $ – удалите их, и они должны работать.

Вы всегда должны отделять переменные от фактической строки. Сделайте что-то вроде этого:

 $category = "restaurant_page"; $query = mysql_query("SELECT * FROM `".$category."` WHERE title LIKE '%".$search_title."%'"); 

ЛОЛ. Это делает мой день. удалите цитату из категории $. Я уверен, что это просто смешная ошибка. Все мы ошиблись. хе-хе

Чтобы решить это изменение, «to»

 $query = mysql_query("SELECT * FROM ".$category." WHERE title LIKE '%$search_title%'");