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

Php 为什么我的SQL查询不返回任何记录?,php,mysql,database,Php,Mysql,Database,我试图获取一个数据库表中的记录数,其中post_id字段等于我将其与之比较的$postID变量。当我将{$postID}换成一个整数(如130)时,查询将按预期返回结果。但是,每当我尝试使用$postID变量查询我的数据库时,都不会返回任何结果。我已经检查了$postID包含的内容,以确保post_id与正确的值进行比较,并且它包含一个130的整数值 如果查询使用硬编码130代替$postID,为什么我使用$postID也等于130时不起作用 变量替换不会发生在单引号字符串中,请参阅 我建议您使

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

如果查询使用硬编码130代替$postID,为什么我使用$postID也等于130时不起作用


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

我建议您使用参数化查询,而不是将有效负载数据混合到实际语句中,请参阅


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

我建议您使用参数化查询,而不是将有效负载数据混合到实际语句中,请参阅


变量替换不会在单引号字符串中发生。这是正确的。你太棒了,从来都不知道这一点。作为php文档中相应部分的添加:[……]注意:与双引号和herdoc语法不同,特殊字符的变量和转义序列在单引号字符串中出现时不会展开。[……]你不应该真的需要一个表,也许看看这里还有一个更新\获取\发布\元变量替换不在单引号字符串中发生。这是正确的。你太棒了,从来都不知道这一点。作为php文档中相应部分的添加:[……]注意:与双引号和herdoc语法不同,特殊字符的变量和转义序列在单引号字符串中出现时不会展开。[……]你不应该真的需要一个表,也许看看这里还有更新\获取\发布\元
$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>";
$postLikes = $wpdb->get_col($wpdb->prepare( 
    'SELECT COUNT(*) FROM wp_post_likes WHERE post_id = %s',
    get_the_ID()
));