$wpdb>查询 Wordpress 简码导致语法错误



我正在尝试更新许多wordpress多站点页面。 我有一个 ajax 脚本,它正在发布到 php 文件,在格式化文本后,它会更新相应的表格单元格。

但是,我不断收到"WordPress数据库错误您的SQL语法有错误;"错误。

$content = "[shortcode] text processed by shortcode [/shortcode]";
$table = "wp_".$_POST["blogid"]."_posts";
$wpdb->query(" UPDATE {$table} SET post_content={$content} WHERE posts_title='test'");

在我希望用于更新单元格的字符串中使用方括号(短代码(是否有问题?

语法对我来说似乎很好,但我的SQL知识不是那么强。 更详细地说,我有一个 mysql 查询,它可以获取所有多站点,然后在使用 JS 进行编辑后循环访问它们,然后再发布到这个 php 文件。

避免直接使用字符串模板进行查询构建。您可以太容易地包含无效语法,并且由于您直接从短代码中读取内容,因此您将整个数据库打开,从而受到SQL注入攻击。这可能会让攻击者直接访问您的数据库,这意味着任何可以发布内容的人也可以完全访问您的WordPress。

始终先准备查询。如果您使用的是$wpdb,则用法描述如下:https://developer.wordpress.org/reference/classes/wpdb/prepare/

这也将确保您查询的简码内容的格式正确。

最新更新