PHP MySQL数据库没有创建新表

时间:2014-11-24 02:15:29

标签: php mysql wordpress

所以我想在我的数据库中创建一个新表,但我似乎无法让它工作。它是一个wordpress插件,所以我不知道是否有什么可能搞乱它。

if ($wpdb->get_var('SHOW TABLES LIKE "' . $wpdb->prefix . DB_PROFILE_TABLE . '"') != $wpdb->prefix . DB_PROFILE_TABLE)
        {
            $sql = 'CREATE TABLE ' . $wpdb->prefix . DB_PROFILE_TABLE . ' (
                    id BIGINT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                    fname VARCHAR(100) NOT NULL,
                    sname VARCHAR(100),
                    city VARCHAR(100),
                    country VARCHAR(100)
                    CHARSET=utf8; ';
                dbDelta($sql);
        }

初学者在php和mySql。

2 个答案:

答案 0 :(得分:1)

看起来你在国家VARCHAR(100)之后错过了一个右括号。您可能还需要删除分号。

$sql = 'CREATE TABLE ' . $wpdb->prefix . DB_PROFILE_TABLE . ' (
    id BIGINT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    fname VARCHAR(100) NOT NULL,
    sname VARCHAR(100),
    city VARCHAR(100),
    country VARCHAR(100))
    CHARSET=utf8';
dbDelta($sql);

答案 1 :(得分:1)

你缺少括号......

你能用这种方式试试吗

global $wpdb;

$charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
  id mediumint(9) NOT NULL AUTO_INCREMENT,
  time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  name tinytext NOT NULL,
  text text NOT NULL,
  url varchar(55) DEFAULT '' NOT NULL,
  UNIQUE KEY id (id)
) $charset_collate;";

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );

这些是使用wordpress plugin

创建表格的规则

1)您必须在SQL语句中将每个字段放在自己的行上。

2)PRIMARY KEY和主键定义之间必须有两个空格。

3)您必须使用关键字KEY而不是其同义词INDEX,并且您必须至少包含一个KEY。

4)您不得在字段名称周围使用任何撇号或反引号。 字段类型必须全部小写。

5)SQL关键字(如CREATE TABLE和UPDATE)必须为大写。

参考http://codex.wordpress.org/Creating_Tables_with_Plugins