Как выбрать строки в моей таблице SQL на основе значения переменной - PullRequest
0 голосов
/ 21 апреля 2020

В настоящее время у меня есть

$username = $_SESSION['username'];
$findID = "SELECT User_id FROM Users WHERE username = $username";
$sql = "SELECT * FROM Task_List WHERE User_id = $findID";

, но, похоже, этот способ не работает, какой будет правильный код для этого?

большое спасибо

1 Ответ

0 голосов
/ 21 апреля 2020

Нет необходимости запускать два запроса. Для этого обычно используется подзапрос join или exists:

select tl.*
from task_list tl
where exists (
    select 1
    from users u 
    where u.user_id = tl.user_id and u.username = ?
)

Или:

select tl.*
from task_list tl
inner join users u on u.user_id = tl.user_id
where u.username = ?

Обратите внимание, что здесь используется ? для обозначения входящего параметра; Вы должны действительно использовать параметризованные запросы, чтобы сделать ваш код более эффективным и безопасным, то есть предотвратить внедрение SQL. Вы можете взглянуть на этот знаменитый пост SO , чтобы узнать, почему и как действовать.

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