为没有创建的wordpress插件创建表

时间:2015-01-21 22:13:16

标签: csv import wordpress-plugin create-table

我正在尝试将我之前的代码重新设计为插件,但我遇到了一些问题。当我尝试使用以下代码创建表时。该表未创建。我试图调试,但没有错误:S

感谢您是否可以查看代码。我还有另一个问题。创建表后,我需要通过csv文件填充它。你们有什么想法,因为我不知道从哪里开始。

再次感谢

function upper_table(){
global $wpdb;
$table_name = $wpdb->prefix . "upper_winds";
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name){
$sql = "CREATE TABLE $table_name ( 
`LVL` VARCHAR(4) NOT NULL, 
`REGION` TEXT NOT NULL, 
`VALID` INT NOT NULL, 
`CURRENT` TEXT NOT NULL 
);";
//reference to upgrade.php file
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );

}    }

此代码位于函数php文件中,并通过

从主插件调用
include ("functions_wx.php");
register_activation_hook(__FILE__,'upper_table');

上面的sql查询已直接通过PHPmyAdmin传递并且已经过罚款。不知道它是否有问题,但我目前正在运行WAMP服务器。

1 个答案:

答案 0 :(得分:0)

尝试替换

 $sql = "CREATE TABLE $table_name ( 
`LVL` VARCHAR(4) NOT NULL, 
`REGION` TEXT NOT NULL, 
`VALID` INT NOT NULL, 
`CURRENT` TEXT NOT NULL 
);";

 $sql = "CREATE TABLE ".$table_name." ( 
`LVL` VARCHAR(4) NOT NULL, 
`REGION` TEXT NOT NULL, 
`VALID` INT NOT NULL, 
`CURRENT` TEXT NOT NULL 
);";

(注意表名周围的引号和点)

如果这不起作用,您可以通过var转储变量$ table_name进行调试,以确保它包含有效的字符串:

var_dump($table_name);

如果是,则尝试将dbDelta()函数的返回值存储在变量中,而不是仅仅调用函数,如下所示:$result = dbDelta( $sql );

然后var_dump结果如下:var_dump($result);

通过这种方式,您可以开始了解代码中代码所在的位置,以及您的语法/变量或您正在使用的dbDelta()函数是否存在问题。