0

Insert//適切な Drupal ヘッダーとブートストラップを呼び出してEdit、外部スクリプトを使用してノードを作成しています。Delete次のような呼び出しを含めました (Drupal ルート ディレクトリの下のスクリプト内)。

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/' . variable_get('password_inc', 'includes/password.inc');
require_once drupal_get_path('module', 'biblio') . '/includes/biblio.contributors.inc';


実際には and に対しては正常に機能していますNode Actions (node_load, node_save)SELECT db_query、に対してはまったく NOですDELETE Queries

つまり、node_load() node_save() db_query("SELECT ..."すでに機能しています..
しかし、まったく機能していません:

db_query("DELETE FROM {biblio} WHERE nid = %d", $nid);

..私も次の方法を使用しました:

$deleted = db_delete('biblio')
          ->condition('nid', $nid)
          ->execute();

再び機能しません。そして、次のような DIRECT PURE PHP MYSQL クエリを使用することはできません。

$mysql_connection = mysql_connect(MYSERVER, USERNAME, PASSW);
mysql_select_db(MYDATABASE, $mysql_connection);
mysql_query("DELETE FROM biblio WHERE nid=`".$nid."`");

我が神よ!なにが問題ですか?
実際、外部スクリプトを使用して、BIBLIO モジュールとそのア​​イテムを回避しようとしています。

私は今何をすべきですか?

私の追加の質問は、テーブルではなく、他のテーブルのアイテムにこれらのクエリを直接使用できないかということですnode。私が今気づいたように、テーブルnode_delete内のアイテムにも使用されています。テーブルなど、他のテーブルにそれnodeを使用できませんか?node_deletebiblio

4

1 に答える 1

0

Drupal は、データベース API 関数またはクラスを含む必要なインクルード ファイルを読み込めないため、どのデータベース エンジンが使用され始めているかを知ることができないため、db_query()orの呼び出しは機能しません。db_delete()その情報は通常、 Drupal の実行に使用されるsettings.phpファイルから読み取られます。外部スクリプトからデータベース API を呼び出す場合、その情報を提供する必要があります。

db_query("DELETE FROM {biblio} WHERE nid = %d", $nid);Drupal 6 コードであることに注意してください。Drupal 7 の場合は、 を使用する必要がありますdb_delete()

于 2013-06-04T14:35:59.327 に答える