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。
答案 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}}中定义的数据库前缀。