@vladislav997

Как выводить записи из БД по слову или сессии?

Подскажите, почему

$posts = R::findAll('posts', 'active = 1');

выводит всё, где есть в столбце active значение "1", а

$posts = R::findAll('posts', '$_SESSION['logged_user']->id;');

или

$posts = R::findAll('posts', 'head = zagolovok');

в этом случае не прокатывает?
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
@xtress
Web-dev
а) 1 запрос работает потому что числа/булевы значения не нужно оборачивать в кавычки;
б) 2 запрос не работает, потому что и не должен - у вас проблема с кавычками, да и даже если её поправить движок бд не знает что с чем ему сравнивать при выборке (поэтому когда поправите кавычки - запрос либо выдаст всё, либо вообще не будет работать). В общем случае, и насколько я почитал про синтаксис redbean и помню ваши предыдущие вопросы - R::findAll('posts', 'author_id = ?', [$_SESSION['logged_user']->id]);
в) 3 запрос опять же не будет работать по причине отсутствия кавычек. Строковые данные должны передаваться экранированными (R::findAll('posts', 'head = "zagolovok"');) или через параметр (R::findAll('posts', 'head = ?', ['zagolovok']);)
г) в качестве совета - прежде чем пытаться разобраться с ORM, почитайте и разберитесь всё же лучше для начала с основами SQL и пыха.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Я с Фалконом не работал (это же он?), но у вас в кавычках ошибки, скорее всего. В первом случае даже здесь подсветка синтаксиса ломается. А во втором должно быть так: 'head = "zagolovok"'. Числа можно не окавычивать, а вот строки обязательно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы