2013-07-14 4 views
0

У меня есть простой запрос:PHP MySQL, где в пункте

$user_id = $_SESSION['user_id']; 

SELECT * FROM pages WHERE user_id IN($user_id); 

поле user_id в таблицах страниц имеет следующий формат 1,3,5, ... содержит несколько user_id

Я необходимо выбрать все строки на основе входа в user_id. Данная попытка не работает, она только подбирает первое число.

+0

Остерегайтесь инъекций SQL при вводе ввода пользователя в SQL-запросы. –

ответ

2

Вы должны использовать find_in_set():

select * 
from pages 
where find_in_set(user_id, $user_id) > 0; 

В качестве альтернативы, вы можете построить SQL, так что имеет значение в строке. Что-то вроде:

select * 
from pages 
where user_id in (".$user_id.")" 
+0

Спасибо, он работает только в том случае, если меняют переменные вроде: find_in_set ($ user_id, user_id)> 0 – Mike

Смежные вопросы