在我爲Drupal 7構建的模塊中我試圖爲安裝和卸載過程創建數據庫模式。當啓用模塊(並因此安裝它)時,我收到一個錯誤,並且我的表格未創建。drupal數據庫架構錯誤
任何人都可以看到它會出錯嗎?
<?php
/**
* Implementation of hook_schema().
*/
function wind_and_waves_schema() {
$schema['wind_and_waves'] = array(
'description' => 'Caches wind and waves data',
'fields' => array(
'id' => array(
'description' => 'The unique identifier for this item.',
'type' => 'serial',
'disp-width' => '11',
'unsigned' => TRUE,
),
'creation' => array(
'description' => 'Moment the data has been loaded',
'mysql_type' => 'datetime',
'disp-width' => '11',
),
'load_time' => array(
'description' => 'Moment the wind data has been loaded by rijkswaterstaat',
'mysql_type' => 'datetime',
'disp-width' => '11',
),
'hoek_wind_snelheid' => array(
'description' => 'Windsnelheid op hoek',
'type' => 'varchar',
'disp-width' => '11',
),
'hoek_wind_stoot' => array(
'description' => 'Windstoot op hoek',
'type' => 'varchar',
'disp-width' => '11',
),
'hoek_wind_richting' => array(
'description' => 'Windrichting op hoek',
'type' => 'varchar',
'disp-width' => '11',
),
'hoek_golf_hoogte' => array(
'description' => 'golfhoogte op hoek',
'type' => 'varchar',
'disp-width' => '11',
),
'ijmuiden_wind_snelheid' => array(
'description' => 'Windsnelheid op ijmuiden',
'type' => 'varchar',
'disp-width' => '11',
),
'ijmuiden_wind_stoot' => array(
'description' => 'Windstoot op ijmuiden',
'type' => 'varchar',
'disp-width' => '11',
),
'ijmuiden_wind_richting' => array(
'description' => 'Windrichting op ijmuiden',
'type' => 'varchar',
'disp-width' => '11',
),
'ijmuiden_golf_hoogte' => array(
'description' => 'golfhoogte op ijmuiden',
'type' => 'varchar',
'disp-width' => '11',
),
'golf_periode' => array(
'description' => 'golfperiode',
'type' => 'varchar',
'disp-width' => '11',
),
'watertemp' => array(
'description' => 'watertemperatuur',
'type' => 'varchar',
'disp-width' => '11',
),
'luchttemp' => array(
'description' => 'luchttemperatuur',
'type' => 'varchar',
'disp-width' => '11',
),
),
'primary key' => array('id'),
);
return $schema;
}
?>
的錯誤,我得到:
PDOException:SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤;請檢查與您的MySQL服務器版本對應的手冊,以便在'DEFAULT NULL COMMENT'Windsnelheid op hoek'附近使用正確的語法,
hoek_wind_stoot
第4行的VARCHAR DEFAULT':CREATE TABLE {wind_and_waves}(id
INT unsigned auto_increment DEFAULT NULL COMMENT'The ',creation
DATETIME DEFAULT NULL COMMENT'Moment data is loaded',hoek_wind_snelheid
VARCHAR DEFAULT NULL COMMENT'Windsnelheid op hoek',hoek_wind_stoot
VARCHAR DEFAULT NULL COMMENT'Windstoot op hoek',hoek_wind_richting
VARCHAR DEFAULT NULL COMMENT' 「Windrichting op hoek',hoek_golf_hoogte
VARCHAR DEFAULT NULL COMMENT'golfhoogte op hoek',ijmuiden_wind_snelheid
VARCHAR DEFAULT NULL COMMENT'Windsnelheid op ijmuiden',ijmuiden_wind_stoot
VARCHAR DEFAULT NULL COMMENT'Windstoot op ijmuiden',ijmuiden_wind_richting
VARCHAR DEFAULT NULL COMMENT'Windrichting op ij muiden」,ijmuiden_golf_hoogte
VARCHAR DEFAULT NULL COMMENT 'golfhoogte運算艾默伊登',golf_periode
VARCHAR DEFAULT NULL COMMENT 'golfperiode',watertemp
VARCHAR DEFAULT NULL COMMENT 'watertemperatuur',luchttemp
VARCHAR DEFAULT NULL COMMENT 'luchttemperatuur',PRIMARY KEY(id
))ENGINE = InnoDB的默認字符集utf8註釋「緩存風浪數據」; db_create_table()中的Array()(位於/home/sitede01/domains/sitedezign.net/public_html/includes/database/database.inc的第2657行)。
感謝克萊夫, 這並刪除錯誤但是它根本不創建數據庫表。 – Yorian
這聽起來是正確的,現在模塊將處於不一致的狀態(即它認爲表已經安裝)。嘗試禁用您的模塊,然後轉到模塊頁面的「卸載」選項卡並將其完全卸載。然後返回模塊頁面並重新啓用它。如果仍然無法使用,請安裝[devel module](http://drupal.org/project/devel)並訪問'mysite.com/devel/reinstall',您可以在其中調用完整的模塊重新安裝 – Clive
謝謝克萊夫,那就是訣竅! – Yorian