Как удалить несколько записей в диапазоне с помощью db_delete () в PHPLucidFrame?

Я удаляю несколько записей в течение периода, используя db_delete() в PHPLucidFrame. Есть ли способ добиться этого?

1

Решение

Во-первых, вы не должны использовать db_delete() удалить несколько записей. Это просто для удаления одной записи, которая проверяет ограничение внешнего ключа, чтобы определить, выполнять ли логическое или физическое удаление записи, если это возможно. Ниже цитата из его документация:

db_delete() это удобный метод для вашей операции SQL DELETE Это применимо только для удаления одной записи. Синтаксис db_delete('table_name', $condition=NULL), LucidFrame рекомендует использовать ограничения внешнего ключа MYSQL. Если ON DELETE RESTRICT найдено, оно выполняет мягкое удаление (логическое удаление), обновляя текущую дату / время в поле «удалено», в противном случае оно выполняет полное удаление (физическое удаление)

Вместо этого вы должны использовать db_delete_multi () удалить несколько записей:

db_delete_multi() полезно для удаления пакетной записи для данного условия, но не проверяет ограничения внешнего ключа.

Например, вот как удалить несколько записей, которые были созданы за период, используя db_delete_multi() а также db_and():

db_delete_multi('post', db_and(
array('created >=' => '2015-01-01'),
array('created <=' => '2015-01-31')
)
);

Для более простого решения стоит использовать between оператор в вашем массиве условий. В этом случае вам не нужно использовать db_and(),

db_delete_multi('post', array('created between' => array('2015-01-01', '2015-01-31')));

Вам нужно будет использовать версию PHPLucidFrame 1.2 по крайней мере.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]