우리는 어떻게 사용하여 여러 테이블에서 필드를 삭제할 수 있습니다 db_delete()
및 INNER JOIN
드루팔 7을?
우리는 어떻게 사용하여 여러 테이블에서 필드를 삭제할 수 있습니다 db_delete()
및 INNER JOIN
드루팔 7을?
답변:
당신은 내가 두려워 할 수 없습니다.
db_delete()
쿼리를 실행할 테이블을 정의하기 위해 단일 문자열 매개 변수를 사용합니다. 한 번에 둘 이상의 테이블을 제공 할 범위가 없습니다.
db_query()
예를 들어 원하는 SQL 문을 예를 들어 실행할 수 있습니다 .
// 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_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
db_delete
별칭을 허용하지 않고, 짜증나는, 하나의 매개 변수를 사용합니다. 그렇지 않으면 db_select와 유사한 JOIN을 사용할 수 있습니다.