WordPress wpdb->Insert返回int(0)=>不插入任何内容,没有错误!

时间:2016-03-13 作者:user3714751

我真是不知所措。我想在我的WordPress插件中插入,问题是它不会返回任何错误,也不会插入内容!

我不知道如何解决这个问题,真的需要你的帮助。在下面的代码中,我使用了示例名称,但我使用了字符- 对于这些,在这种情况下,我的真实表也有- 它和桌子本身一样。

通常没有问题,只需使用一些回勾即可,而且效果很好,但现在欢迎使用WordPress。WordPress中的插入功能是否有问题,或者是否存在其他可能的错误?

我真的想自己解决这个问题,但失败了。

$insertion = $wpdb->insert($wpdb->prefix.\'table-name-of-plugin\', array(
                \'column-name\' => $stringValueForC1,
                \'second-column-name\' => $stringValueForC2
            ), array(\'%s, %s\'));
如果我使用var_dump() 对于插入变量,我得到:int(0).一串0 对于wpdb->last_errorbool(false) 对于wpdb->last_query.

我还仔细检查了我的表名,它是百分之百正确的!错误可能是什么?

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

您的格式错误。

在你的代码上应该是

$insertion = $wpdb->insert($wpdb->prefix . \'table-name-of-plugin\', array(
\'column-name\' => $stringValueForC1,
\'second-column-name\' => $stringValueForC2
    ), array(\'%s\', \'%s\') );
注意以下更改

array(\'%s, %s\')

array(\'%s\', \'%s\')
另外,因为您正在将两个值的格式都设置为字符串。我建议你只使用

\'%s\'
format参数接受数组或字符串。如果是字符串,则字符串将用作所有值的格式。来源-https://codex.wordpress.org/Class_Reference/wpdb#INSERT_row

SO网友:Sumit

数据类型格式中存在问题。你通过了array(\'%s, %s\') 仔细观察,不要将两个值作为单个值传递,否则会导致数据类型格式不正确。

应该是这样的array(\'%s\', \'%s\')

最后正确的陈述如下

$insertion = $wpdb->insert($wpdb->prefix . \'table-name-of-plugin\', array(
    \'column-name\' => $stringValueForC1,
    \'second-column-name\' => $stringValueForC2
        ), array(\'%s\', \'%s\')
);