如何使用$wpdb->Query执行包含多个查询的SQL查询?

时间:2015-08-27 作者:k00ni

我想执行以下查询字符串,其中包含使用$wpdb->Query的两个单独查询:

创建表\'foobar\'(\'id\'int(2)NOT NULL AUTO\\u INCREMENT,\'foo\'varchar(22)COLLATE utf8\\u unicode\\u ci NOT NULL,主键(\'id\'))ENGINE=InnoDB AUTO\\u INCREMENT=34 DEFAULT CHARSET=utf8 COLLATE=utf8\\u unicode\\u ci;插入\'foobar\'值(\'1\',\'foo!mit so \\\'kram halt\')

查询函数返回false,表及其行均未创建。

我通过使用explode将字符串拆分为多个部分来帮助我,并分别执行每个查询:

$querString = "CREATE TABLE `foobar` ( `id` int(2) NOT NULL AUTO_INCREMENT, `foo` varchar(22) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;INSERT INTO `foobar` VALUES (\'1\',\'foo! mit so \\\' kram halt\')";

$queries = explode(\';\', $queryString);

foreach($queries as $query) {
  $wpdb->query($query);
}
这就引出了一个问题,为什么我不能使用$wbdb->query?

1 个回复
SO网友:Kamaro

只需单独查询;就像在普通的sql编辑器中编写它们一样。它应该会起作用。我假设您的查询没有读取查询(返回结果)。它们应该是CREATE, UPDATE, DELETE, ALTER此类查询不是SELECT