我真是不知所措。我想在我的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_error
和
bool(false)
对于
wpdb->last_query
.
我还仔细检查了我的表名,它是百分之百正确的!错误可能是什么?
最合适的回答,由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\')
);