Php 在str_replace中使用sql查询

Php 在str_replace中使用sql查询,php,mysql,sql,wordpress,mysqli,Php,Mysql,Sql,Wordpress,Mysqli,我有这样一个代码来获取帖子标题: $content=str_替换“%title”,$post->post_title,$content; 我想使用数据库中我自己的标题。 我写了这段代码: global $wpdb; $mycontent = $wpdb->get_var( 'SELECT `meta_value` FROM `wp_postmeta` WHERE `post_id` = '.$post->ID.' AND `me

我有这样一个代码来获取帖子标题: $content=str_替换“%title”,$post->post_title,$content; 我想使用数据库中我自己的标题。 我写了这段代码:

        global $wpdb;
        $mycontent = $wpdb->get_var(
            'SELECT `meta_value` FROM `wp_postmeta` WHERE `post_id` = '.$post->ID.' AND `meta_key` = \'my_seo_title\';'
        );
        $content = str_replace('%my_seo_title', $mycontent , $content);
这会造成安全问题吗

它有安全问题吗

在不可能的事件中,你的POST对象被替换为其他东西,在那一点上,我会考虑网站的安全性已经被破坏了,攻击者可以用$Qual.A.K.A./P>替换$POST->ID返回的值。 为了避免这种情况,正如其他人已经指出的,您应该使用$wpdb对象中的方法来转义查询:

出于好奇,当我们已经有了自动为您进行整个安全检查的功能时,为什么您要手动从数据库中检索元数据?我的意思是,您可以将代码替换为:

$mycontent = get_post_meta( $post->ID, 'my_seo_title', true );

。。。忘记手动编写查询和/或在不必要时使其安全。

可能重复您尝试执行的操作非常危险:非常容易被破解。请参阅我链接的副本,了解如何在没有安全风险的情况下使用SQL这不是使用SQL的方式。您可能需要更多帮助您使用的是哪个mysql驱动程序PDO。。mysqli?。。你可以用箱子做你需要的事param@norbert-van nobelen我用你的链接编辑了我的问题。我的编码会造成安全问题吗$wpdb用于wordpress sql ConnectionTanks一百万@cabrerahector。我错误地认为,当数据位于另一个表中时,检索是必要的;你的代码运行得很好。
$mycontent = get_post_meta( $post->ID, 'my_seo_title', true );