Передача массива к запросу с помощью оператора Where

Я помню, что планировалось добавить поиск по полю __date, чтобы сделать это проще, но в его нынешнем виде «стандартный» способ сделать это -

today_min = datetime.datetime.combine(datetime.date.today(), datetime.time.min)
today_max = datetime.datetime.combine(datetime.date.today(), datetime.time.max)
Invoice.objects.get(user=user, date__range=(today_min, today_max))
302
задан Braiam 12 February 2017 в 06:46
поделиться

3 ответа

ОСТОРОЖНО! Этот ответ содержит серьезную уязвимость SQL-инъекций . НЕ используйте образцы кода, представленные здесь, не убедившись, что любой внешний вход продезинфицирован.

$ids = join("','",$galleries);   
$sql = "SELECT * FROM galleries WHERE id IN ('$ids')";
320
ответ дан 23 November 2019 в 01:25
поделиться

Использование:

select id from galleries where id in (1, 2, 5);

Простое для каждого цикла будет

Путь Flavius ​​/ AvatarKava лучше, но убедитесь, что ни одно из значений массива не содержит запятых.

11
ответ дан 23 November 2019 в 01:25
поделиться

Предполагая, что вы заранее правильно дезинфицируете свои входы ...

$matches = implode(',', $galleries);

Затем просто настройте свой query:

SELECT *
FROM galleries
WHERE id IN ( $matches ) 

Укажите значения в кавычках в зависимости от вашего набора данных.

28
ответ дан 23 November 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: