0

我正在使用 phpmyadmin

在帖子的每个标题中都包含“In x”(x 是 1 到 1000 范围内的数字)

例子:

 In 434 Hello everybody ----> remove "In 434" -----> Hello everybody
 In 62 Hi everybody     ----> remove "In 62" ------> Hi everybody
 In 2 I am newmember    ----> remove "in 2"  ------> I am newmember

如何使用 sql 查询删除“In x”?

这是我的代码

SELECT wp_posts.post_title FROM wp_posts Where wp_posts.post_status = 'publish'
$result = preg_replace('/In \d+ /','',$title);
UPDATE wp_post SET post_content = $result

但是是说一个错误

"#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以便在 '$result = preg_replace('/In \d+ /','',$title) 附近使用正确的语法'在第 2 行"

非常感谢你 !对不起,我的英语不好 !

4

1 回答 1

0

您正试图preg_replace()在 MySQL 服务器上执行 PHP 代码(行)。这是行不通的,而且 MySQL 的查询语言还不够强大,无法执行诸如此类的任意模式替换。相反,您需要编写将运行 SELECT 查询的 PHP 代码,然后对于返回的每一行,将preg_replace()函数应用到“标题”字段并运行 UPDATE 查询以应用数据库中的更改。

有很多很多关于如何编写与 MySQL 数据库交互的 PHP 代码的示例,但是为什么不使用 Wordpress API 并为自己节省大量工作呢?get_posts()并且wp_update_post()是一个很好的起点;一般来说,Wordpress 函数参考也可能对您有用,尤其是“入门”部分。

于 2013-05-30T15:59:22.240 回答