ลบออกจากหลาย ๆ ตารางโดยใช้ db_delete ()


คำตอบ:


11

คุณไม่สามารถฉันกลัว

db_delete()รับพารามิเตอร์สตริงเดียวเพื่อกำหนดตารางที่แบบสอบถามจะถูกเรียกใช้ ไม่มีขอบเขตที่จะให้มากกว่าหนึ่งตารางในเวลาเดียวกัน

คุณสามารถเรียกใช้คำสั่ง SQL ใด ๆ ที่คุณต้องการได้ด้วยdb_query()เช่น

// Deletes all nodes and related author users...please don't actually run this!!
$sql = 'DELETE u, n FROM {node} n INNER JOIN {users} u ON u.uid = n.uid';
db_query($sql);

ที่db_deleteใช้พารามิเตอร์เดียวโดยไม่อนุญาตให้นามแฝงเป็นที่น่ารำคาญ มิฉะนั้นเป็นไปได้ที่จะใช้เข้าร่วมคล้ายกับ db_select
Agi Hammerthief

0

ใช่ db_delete ใช้พารามิเตอร์เดียว คุณต้องโทรdb_delete()หลายครั้งเพื่อลบข้อมูลจากหลายตาราง โปรดดูตัวอย่างรหัสต่อไปนี้:

/**
 * Implements hook_menu_delete().
 */
function block_menu_delete($menu) {
  db_delete('block')
    ->condition('module', 'menu')
    ->condition('delta', $menu['menu_name'])
    ->execute();
  db_delete('block_role')
    ->condition('module', 'menu')
    ->condition('delta', $menu['menu_name'])
    ->execute();
}

ลิงก์แหล่งที่มา:
https://github.com/drupal/drupal/blob/7.x/modules/block/block.module
https://api.drupal.org/api/drupal/modules%21block%21block.module/ 7.x

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.