0

我正在使用以下代码通过添加额外的列来修改数据库表:

$componentName = 'is_this_the_first_time_you_have_taken_part_in_or_attended_this_event';
    db_add_field('webform_views_data',
        $componentName,
            array('type' => 'varchar', 'length' => 255, 'not null' => TRUE)
    );

但是,我不断收到以下错误:

> PDOException: SQLSTATE[42000]: Syntax error or access violation: 1059
> Identifier name
> 'is_this_the_first_time_you_have_taken_part_in_or_attended_this_event'
> is too long: ALTER TABLE {webform_views_data} ADD
> `is_this_the_first_time_you_have_taken_part_in_or_attended_this_event`
> VARCHAR(255) NULL DEFAULT NULL; Array ( ) in db_add_field() (line 2812
> of /var/www/mysite/includes/database/database.inc).

关于错误消息中明显的长度细节,我想我们都同意'is_this_the_first_time_you_have_taken_part_in_or_attended_this_event'不是 255 个字符长。

不确定是什么问题。

4

1 回答 1

1

VARCHAR(255)或 255 个字符是字段内容的最大字符,但错误指出字段名称太长。

也就是说,is_this_the_first_time_you_have_taken_part_in_or_attended_this_event对于字段名称来说太长了。

有关相关问题,请参阅此答案,并注意根据MySQL 文档,字段名称的字符限制为 64 个字符。

于 2012-09-26T16:34:34.093 回答