创建wordpress表,我哪里错了?

时间:2012-11-05 15:21:53

标签: php database wordpress wpdb

        global $wpdb;
        $table_name = $wpdb->prefix . "product_order";   

        $sql = "CREATE TABLE $table_name (
            id mediumint(9) NOT NULL AUTO_INCREMENT,
            range VARCHAR(255),
            category VARCHAR(255),
            order mediumint(9),
            relation mediumint(9),
            UNIQUE KEY id (id)
        );";

        $wpdb->query($sql);

这似乎没有创建一个表......任何原因?我也试过dbdelta。

1 个答案:

答案 0 :(得分:1)

为了回答,将range中的列名称包围在后面,order$sql = "CREATE TABLE $table_name ( `id` mediumint(9) NOT NULL AUTO_INCREMENT, `range` VARCHAR(255), `category` VARCHAR(255), `order` mediumint(9), `relation` mediumint(9), UNIQUE KEY id (id) );"; 是MySQL中的保留字:

{$wpdb->prefix}$table_name

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

作为旁注,如果您想确保不与其他表冲突,如果此架构与其他wordpress实例共享或成为多站点,请考虑使用$table_name而不是wp-config.php使用{{1}}中定义的数据库前缀。