Обратите внимание, что (в зависимости от ваших прав на Drupal) вам, скорее всего, придется работать как пользователь с разрешениями на удаление узлов - например, user-1, а не анонимным пользователем по умолчанию. Вы можете сделать это, предварительно добавляющим ваш node_delete()
вызова с,
global $user;
$user = user_load(1);
Вы можете также испытать тайм-аут, если удаление многих узлов и вызов файла PHP через браузер. Одно исправление для этого - вызывать файл PHP через командную строку (если у вас есть доступ к оболочке). Например,
php -f custom-script.php
Опять же, если вы удаляете множество узлов, у вас также может закончиться нехватка памяти. Увеличение лимита памяти PHP для вызова вашего сценария, как это,
php -f custom-script.php -d memory_limit=512M
Это работает против моих тестов с Drupal 6. Обратите внимание, что вы можете быть в состоянии решить проблему тайм-аута сервера, установив явный таймаут в custom-script.php
.
node_delete() удалит узел независимо от разрешений. Пожалуйста, подумайте о том, чтобы рекомендовать OP не использовать необработанные SQL-запросы для их удаления. Из-за сиротских узлов многие вещи будут разбиты в будущем. –