繁体   English   中英

为什么我的SQL查询不返回任何记录?

[英]Why isn't my SQL query returning any records?

我试图获取我的数据库表之一中的记录数,其中post_id字段等于$postID比较的$postID变量。 当我将{$postID}换成整数(例如130 ,查询将按预期返回结果。 但是,每当我尝试使用$postID变量查询数据库时,都不会返回任何结果。 我已经检查了$postID包含的内容,以确保将post_id与正确的值进行比较,并且其中包含130的整数值。

如果查询使用硬编码工作的130代替$postID ,为什么没有当我使用工作$postID等于130呢?

$postID = get_the_ID();
$postLikes = $wpdb->get_results('
    SELECT COUNT(*) FROM wp_post_likes WHERE post_id = {$postID}
');

echo "<pre>";
     var_dump($postLikes);
echo "</pre>";

变量替换不会在单引号引起来的字符串中发生,请参阅变量解析

而且我建议您使用参数化查询,而不是将有效负载数据混合到实际语句中,请参阅保护查询免受SQL注入攻击

$postLikes = $wpdb->get_col($wpdb->prepare( 
    'SELECT COUNT(*) FROM wp_post_likes WHERE post_id = %s',
    get_the_ID()
));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM