Wordpress dbDelta函数无法执行我的查询

Dre*_*rew 0 sql wordpress

我试过逃避所有的角色,这是行不通的.我需要专门插入这个字符串.谁能告诉我我错过了什么?其他4个插入语句工作正常.以下是完整代码:

$user_id = mysql_insert_id();


$sql1 = "INSERT INTO `wp_usermeta` VALUES (NULL, $user_id, 'nickname', '$email');
INSERT INTO `wp_usermeta` VALUES (NULL, $user_id, 'rich_editing', 'true');
INSERT INTO `wp_usermeta` VALUES (NULL, $user_id, 'comment_shortcuts', 'false');
INSERT INTO `wp_usermeta` VALUES (NULL, $user_id, 'admin_color', 'fresh');";

$sql1 .= "INSERT INTO `wp_usermeta` VALUES (NULL, $user_id, 'wp_capabilities', 'a:1:{s:10:\"subscriber\";b:1;}');";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql1);
Run Code Online (Sandbox Code Playgroud)

谢谢

UPDATE

问题在于字符串中的分号.我试图以正常的方式逃避这些()但这似乎不适用于此.字符串现在看起来像:1:{s:10:\"subscriber \"\; b:1 \;}有什么想法吗?

Pau*_*xon 5

(这个答案随着OP提供了更多代码而演变.这是最终的,简化的答案!)

wordpress dbDelta函数会爆炸它在';'上给出的字符串,它位于你的JSON中.您需要做的是将查询分成一个数组,然后将其传递给dbDelta.

$sql1=array();
$sql1[]="insert into....";
$sql1[]="insert into....";

dbDelta($sql1);
Run Code Online (Sandbox Code Playgroud)