数据库:自定义表:DATETIME列的Sprintf值

时间:2015-12-02 作者:Peter Bushnell

我按照wpdb类引用上的插入示例创建了一个插入查询。对于自定义表上的DateTime列,应该使用什么样的类似sprintf的占位符?允许的占位符似乎是%s(字符串)、%d(整数)和%f(浮点)。在下面的示例中,我已将DateTime列设置为使用%s字符串值,是否正确?

下面的例子简化了我的情况。

表格创建

global $wpdb;
$sql = "CREATE TABLE $wpdb->prefix. \'time\' (
       id bigint(20) NOT NULL AUTO_INCREMENT,
       time datetime DEFAULT \'0000-00-00 00:00:00\' NOT NULL,
       UNIQUE KEY id (id)
       )";
require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
dbDelta( $sql );
插入

$wpdb->insert(
    $wpdb->prefix. \'time\',
    array(
        \'time\' => current_time( \'mysql\' )
    ),
    array(
        \'%s\'
    )
);
我一直在使用的wpdb类参考链接如下。http://codex.wordpress.org/Class_Reference/wpdb#Placeholders

1 个回复
SO网友:Peter Bushnell

在我的演示网站上进行测试后,它似乎可以很好地将DateTime列存储为%s(字符串)。像这样插入之后,数据库会完全按照预期报告DateTime列。

相关推荐

如何像使用wpdb一样使用MySQL?

根据标题,我需要使用LIKE操作符以编程方式使用$wpdb删除db上的一行。我想使用$wpdb->delete 消除发生的情况,但我不知道如何设置LIKE 操作员,因为在WHERE 它需要一个指定单个值或另一个数组的数组。我问你这个语法是否正确。$wpdb->delete(\'wp_posts\', array(\'post_type\' => \'flamingo_inbound\', \'post_content\' => \'%\'.$mail.\'%\'));提前感谢