[英]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.