if语句不起作用

时间:2010-11-18 02:54:39

标签: php mysql wordpress if-statement

在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(执行代码..}”。使用!=没有任何反应我无法弄清楚为什么......我只想保持代码尽可能短。< / p>

3 个答案:

答案 0 :(得分:0)

尝试

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

答案 1 :(得分:0)

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 ) );
}

应该是你想要的。 (在条件之前添加了!以模拟你的“其他”效果)

答案 2 :(得分:0)

您的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" )) {