1

Drupal 7で単純な挿入クエリを試しましたが、常にエラーが返されます。db_insertdrupal_write_recorddb_queryも試しましたが、すべての関数がさまざまなエラーを返します。

tabledrag_menuテーブルがあります:

ここに画像の説明を入力してください

私は$adat配列を持っています:

Array
(
    [name] => Overview
    [weight] => 0
    [group] => left
    [checked] => 0
    [tid] => 96
    [nid] => 20
)

var_dumpを使用すると、次のようになります。

array(6) { ["name"]=>   string(8) "Overview"   ["weight"]=>   int(0)   ["group"]=>   string(4) "left"   ["checked"]=>   int(0)   ["tid"]=>   int(96)   ["nid"]=>   int(20) } 

エラーを出す私のコード:

$id = db_insert('tabledrag_menu')->fields($adat)->execute();

db_insertを使用すると、次のエラーメッセージが返されます。

PDOException:SQLSTATE [42000]:構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、'group、checked、tid、nidの近くで使用する正しい構文を確認してください)VALUES('Overview'、 '0'、'left'、 '0'、 '96'、 '20 ')' 1行目:INSERT INTO {tabledrag_menu}(name、weight、group、checked、tid、nid)VALUES(:db_insert_placeholder_0、:db_insert_placeholder_1、:db_insert_placeholder_2、:db_insert_placeholder_3、:db_insert_placeholder_4、:db_insert_placeholder_5); 配列([:db_insert_placeholder_0] =>概要[:db_insert_placeholder_1] => 0 [:db_insert_placeholder_2] =>左[:db_insert_placeholder_3] => 0 [:db_insert_placeholder_4] => 96 [:db_insert_placeholder_5] => 20)

この部分がエラーの原因になると思いますが、修正方法がわかりません。

値(「概要」、「0」、「左」、「0」、「96」、「20」)

4

2 に答える 2

6

グループはMySqlの予約語です。そのフィールドに他の名前を使用してみてください。

于 2013-01-15T13:44:40.430 に答える
1

整数列内の値から一重引用符を削除してみてください。

たとえば、これを変更します

VALUES ('Overview', '0', 'left', '0', '96', '20')

次のようなものになります:

VALUES ('Overview', 0, 'left', 0, 96, 20)
于 2013-01-15T12:53:25.570 に答える