在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>
答案 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" )) {