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]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 'DEFAULT NULL ) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT 'Table to stor' 在第 13 行:CREATE TABLE {request_gold_pack_customer_details} ( ridINT NOT NULL DEFAULT 0, titleVARCHAR(10) NOT NULL DEFAULT '',first_nameVARCHAR(50) 非空默认值'',last_nameVARCHAR(50) 非空默认值'',house_name_noVARCHAR(50) 非空默认值'',streetVARCHAR(160) 非空默认值'',townVARCHAR(50) 非空默认值'',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 utf8 COMMENT '用于存储所有客户详细信息的表。 '; db_create_table() 中的数组 ()(/Users/richardskinner/Sites/www.goldrushmoney.com-local/httpdocs/includes/database/database.inc 的第 2688 行)。

几个小时以来一直试图找到解决方案。

谢谢。

4

2 回答 2

2

这是您的主键的问题。您已将其列在字段数组中(不应如此),并且应将其引用为“主键”而不是“主键”,如下所示:

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' => array(
    'type' => 'serial',  
    'unsigned' => TRUE, 
    'not null' => TRUE, 
)
于 2012-11-30T18:01:22.073 回答
-1

您必须在 drupal 7 中为类型“int”指定大小...即

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

大小可以是正常的、微小的、大的检查 drupal 7 数据类型。

于 2013-10-14T05:43:34.723 回答