簡體   English   中英

如果聲明不起作用

[英]if statement doesn't work

在Wordpress中,我嘗試將我發布的帖子的帖子ID添加到新表中(如果還沒有的話)(以避免從管理面板更新帖子時出現重復條目​​)

if( $wpdb->get_row("SELECT post_id FROM wp_post_votes WHERE post_id != $post_ID" ) ) {
    $wpdb->insert( $wpdb->prefix . 'post_votes', array( 'post_id' => $post_ID ) );
    }

該語句僅適用於=運算符和“ else(do code ..}”。對於!=,什么也沒發生,我不知道為什么。.我只想使代碼盡可能短。

嘗試

if( !$wpdb->get_row("SELECT post_id FROM wp_post_votes WHERE post_id = $post_ID" )
if(!($wpdb->get_row("SELECT post_id FROM wp_post_votes WHERE post_id = $post_ID" ) ) ) {
    $wpdb->insert( $wpdb->prefix . 'post_votes', array( 'post_id' => $post_ID ) );
}

應該是您要找的東西。 (在條件之前添加了!來模擬“其他”效果)

您的if語句正在檢查來自

$wpdb->get_row("SELECT post_id FROM wp_post_votes WHERE post_id != $post_ID" )

評估為真實值。 本質上,您正在運行一個查詢,該查詢從所有行中選擇所有ID(也許一個除外)。 這效率低下,可能不是您想要的-您可能想檢查是否未找到匹配的行,而不是找到了不匹配的行。

您可能想要:

if (!$wpdb->get_row("SELECT post_id FROM wp_post_votes WHERE post_id = $post_ID" )) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM