1

どんな助けでも素晴らしいでしょう。

function request_gold_pack_schema() {
    $schema['request_gold_pack_customer_details'] = array(
        'description' => 'Table to store all customer details.',
        'fields' => array(     
            'rid' => array(
                'type' => 'int',  
                'not null' => TRUE, 
                'default' => 0,
                'auto increment' => TRUE
            ),
            'title' => array(
                'type' => 'varchar', 
                'length' => 10,
                'not null' => TRUE,
                'default' => ''
            ),
            'first_name' => array(
                'type' => 'varchar',
                'length' => 50, 
                'not null' => TRUE,
                'default' => ''
            ),
            'last_name' => array(
                'type' => 'varchar',
                'length' => 50,
                'not null' => TRUE,
                'default' => ''
            ),
            'house_name_no' => array(
                'type' => 'varchar', 
                'length' => 50,
                'not null' => TRUE,
                'default' => ''
            ),
            'street' => array(
                'type' => 'varchar',
                'length' => 160,
                'not null' => TRUE,
                'default' => ''
            ),
            'town' => array(
                'type' => 'varchar',
                'length' => 50,
                'not null' => TRUE, 
                'default' => ''
            ),
            'county' => array(
                'type' => 'varchar', 
                'length' => 50,
                'not null' => TRUE,
                'default' => ''
            ),
            'telephone' => array(
                'type' => 'int',
                'length' => 12,
                'not null' => TRUE,
                'default' => ''
            ),
            'email' => array(
                'type' => 'varchar', 
                'length' => 255,
                'not null' => TRUE,
                'default' => ''
            ),
            'date_registered' => array(
                'mysql_type' => 'DATETIME',
                'not null' => TRUE
            ),
            'primary' => array(
                'rid'
            )
        )
    );

    return $schema;
}

次のエラーが発生します

注意:未定義のインデックス:DatabaseSchema_mysql-> processField()と入力します(/Users/richardskinner/Sites/www.goldrushmoney.com-local/httpdocs/includes/database/mysql/schema.incの205行目)。注意:未定義のインデックス:: DatabaseSchema_mysql-> processField()の通常(/Users/richardskinner/Sites/www.goldrushmoney.com-local/httpdocs/includes/database/mysql/schema.incの205行目)。PDOException:SQLSTATE [42000]:構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで'DEFAULTNULLの近くで使用する正しい構文を確認してください)ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT' Table to stor' at line 13:CREATE TABLE {request_gold_pack_customer_details}(ridINT NOT NULL DEFAULT 0、titleVARCHAR(10)NOT NULL DEFAULT''、first_nameVARCHAR(50)NOT NULL DEFAULT''、last_nameVARCHAR(50)NOT NULL DEFAULT''、house_name_noVARCHAR(50)NOT NULL DEFAULT''、streetVARCHAR(160)NOT NULL DEFAULT''、townVARCHAR(50)NOT NULL DEFAULT''、countyVARCHAR(50)NOT NULL DEFAULT''、telephoneINT NOT NULL DEFAULT''、emailVARCHAR(255)NOT NULL DEFAULT''、date_registeredDATETIME NOT NULL、primaryDEFAULT NULL)ENGINE = InnoDB DEFAULT CHARACTER SET utf8COMMENT'すべての顧客の詳細を格納するテーブル。 '; db_create_table()の配列()(/Users/richardskinner/Sites/www.goldrushmoney.com-local/httpdocs/includes/database/database.incの2688行目)。

何時間も解決策を見つけようとしてきました。

ありがとう。

4

2 に答える 2

2

これは主キーの問題です。これをfields配列にリストし(そうではないはずです)、次のように「primary」ではなく「primarykey」として参照する必要があります。

function request_gold_pack_schema(){
    $schema['request_gold_pack_customer_details'] = array(
        'description' => 'Table to store all customer details.',
        'fields' => array(     
              // Your field definitions
         ),
         'primary key' => array(
             'rid'
         )
    );
    return $schema;
}

drupal.orgのスキーマAPIドキュメントを確認してください。

ridまた、フィールドをtypeserialに設定し、自動増分パラメーターを省略しておくことをお勧めします(Drupalがそれを処理します)。したがって、「rid」フィールドの定義は次のようになります。

'rid' => array(
    'type' => 'serial',  
    'unsigned' => TRUE, 
    'not null' => TRUE, 
)
于 2012-11-30T18:01:22.073 に答える
-1

タイプ'int'...ieのdrupal7でサイズを指定する必要があります

'rid' => array(
'type' => 'int',  
'not null' => TRUE, 
'size' => 'normal',
'auto increment' => TRUE,
),

サイズは、normal、tiny、big checkdrupal7データ型にすることができます。

于 2013-10-14T05:43:34.723 に答える