簡體   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