向自定义数据库表插入行时出现问题

时间:2015-05-02 作者:inverted_index

我在数据库中有一个名为wp_tasks 其中有5个字段。

但我无法将当前时间插入到assign_date 领域

wp_tasks table

id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
worker_id INT(6) ,
project_id INT(6),
work_id INT(6),
assign_date DATETIME

Inserting records

function insert_record_to_db( $worker_id, $work_id, $project_id ){
    global $wpdb;
    $tablename = $wpdb->prefix.\'tasks\';
    $data = array(
        \'id\' => "",
        \'worker_id\' => $worker_id,
        \'project_id\' => $project_id, 
        \'work_id\' => $work_id,
        \'assign_date\' => date( "Y-m-d H:i:s" )
    );
    $format= array( \'%d\', \'%d\', \'%d\',\'%s\');
    $wpdb->insert( $tablename, $data, $format );
}
问题是什么?

2 个回复
SO网友:Paul G.

这里要做的最简单的事情是删除:

\'id\' => "",
从数据数组。

此外,为了简化数据库创建,不需要执行get\\u var(),只需将SQL命令更改为:

CREATE TABLE IF NOT EXISTS $table_name
通过这种方式,您可以让db处理表的创建,而无需事先使用额外的SQL语句。

SO网友:Abubakar Wazih Tushar

试试这个。这应该对你有用

function insert_record_to_db( $worker_id, $work_id, $project_id ){
    global $wpdb;
    $wpdb->insert(
        $wpdb->prefix . \'tasks\',
        array(
            \'worker_id\' => $worker_id,
            \'work_id\' => $work_id,
            \'project_id\' => $project_id,
            \'assign_date\' => date( \'Y-m-d H:i:s\', current_time(\'timestamp\') )
        ) 
    );
    // $wpdb->insert_id;
}

结束

相关推荐

为什么即使查询输出是正确的,$wpdb->show_error()和print_error()也会显示输出?

要解决以下问题,请参阅https://wordpress.stackexchange.com/questions/178995/sanitize-a-working-query-string-by-using-wpdb-prepare-fails-with-mysql-db-er 我遇到了一个相当奇怪的行为。即使我使用的查询是正确的,并且显示了正确的输出。global $wpdb; $wpdb->show_errors(); $pageposts = $wpdb->get_r