Как подставить переменную в запрос?
Подскажите пожалуйста что не так у меня в коде. Делаю запрос в базу данных
$id = $_POST['id']; // 25
$cat = $_POST['thisCat']; // persons
$ph = \R::getAll("
SELECT *
FROM phones
WHERE owner_id = $id AND cat = $cat
");
Получаю ошибку
Произошла ошибка
Код ошибки: Исключения ошибок
Текст ошибки: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'persons' in 'where clause'
Файл, в котором произошла ошибка: Z:\domains\a-my.loc\vendor\fw\libs\rb.php
Строка, в которой произошла ошибка: 720
но если в запросе вместо переменной $cat запрямую написать 'persons'
$ph = \R::getAll("
SELECT *
FROM phones
WHERE owner_id = $id AND cat = 'persons'
");
всё работает. Что я делаю не так?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Попробуйте использовать такую подстановку переменных:
$id = $_POST['id']; // 25
$cat = $_POST['thisCat']; // persons
$ph = \R::getAll("
SELECT *
FROM phones
WHERE owner_id = :id AND cat = :cat
",
[
'id' => $id,
'cat' => $cat
]);