$wpdb->插入无法以任何方式工作

时间:2011-12-26 作者:Sven

我知道这类问题已经被问了一遍又一遍,但我找不到解决问题的方法,所以我希望你能帮助我。我正在使用WP 3.3。我已经创建了一个自定义表。现在我想在其中插入一些数据,但无法使其工作。这是我的代码:

global $wpdb;
$table_name = $wpdb->prefix . "my_data";
$wpdb->insert($table_name, array(
            \'my_id\'     => NULL,
        \'my_day\'    => $day,
        \'my_month\'  => $month,
        \'my_abbr\'   => $abbr,
        \'my_venue\'  => $venue,
        \'my_geo\'    => $geo_one.", ".$geo_two,
        \'my_artist\' => $artist,
        \'my_link\'   => $link
                )
                );
我现在正在尝试插入数小时的数据,但运气不好。在我看来,代码是正确的,但我想我只是弄乱了一些重要的东西。任何指点都将不胜感激!非常感谢。

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

什么时候$wpdb 方法的性能并没有达到应有的水平,结果SQL查询可能会出现问题(因为输入错误或其他原因)。

跟随wpdb reference in Codex 故障排除:

通过启用数据库错误显示$wpdb->show_errors()$wpdb->last_query

SO网友:bueltge

这个wpdb-类没有插入方法。最好不要使用查询;查看codex,您找不到此函数insert() - http://codex.wordpress.org/Class_Reference/wpdb

在WPDB上插入自定义表的示例;使用默认值CREATE TABLE-SQL语法并使用query() 属于wpdb 包含您的值的表格。

        $table = $GLOBALS[\'wpdb\'] -> prefix . \'my_data\';
        $GLOBALS[\'wpdb\'] -> query(
            "CREATE TABLE $table (
            called_by varchar(96) NOT NULL,
            my_name varchar(96) NOT NULL,
            my_type varchar(15) NOT NULL,
            first_call int(11) NOT NULL,
            arg_count tinyint(4) NOT NULL,
            file_name varchar(128) NOT NULL,
            line_num smallint NOT NULL,
            PRIMARY KEY (first_call, my_name) )"
        );
要插入此源,请使用register_activation_hook()-钩只有在激活时,如果表不存在,插件才会安装该表。在…上register_uninstall_hook() 我删除自定义表。

结束