0
我試圖通過WordPress運行MySQL查詢,帶回我想刪除的帖子列表,因爲他們沒有「喜歡」投票(使用別人的插件數據)。該查詢在phpMyAdmin中完美工作,但在通過WP運行時出現語法錯誤......我完全沒有理由這麼做。自定義WordPress查詢奇怪的MySQL錯誤
這裏的查詢代碼,檢查崗位超過30天沒有相應的「像」,在wti_like_post條目(無論正或負):
$novotesquery = "SELECT * FROM $wpdb->posts
WHERE $wpdb->posts.post_type = 'post'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_date < DATE_SUB(NOW(), INTERVAL 30 DAY)
AND $wpdb->posts.ID NOT IN
(SELECT DISTINCT post_id FROM $wpdb->wti_like_post)" ;
$result = $wpdb->get_results($novotesquery);
語法錯誤說,有一個問題就SQL的最後一行(括號中的SELECT):「您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以獲得在第6行''附近使用的正確語法'」。
當我在phpMyAdmin中運行查詢(用表前綴替換「$ wpdb->」)時,它會起作用。如果有人可以告訴我爲什麼SQL查詢將在服務器上運行,而不是在WP中運行,那麼我會很感激。
在此先感謝。
wp_wti_like_post在標準安裝 - 它取決於配置中定義的數據庫前綴。 –
感謝評論和回答,我發現什麼是錯的。像往常一樣,假設是所有擰緊的母親! 我假設「$ wpdb-> wti_like_post」轉換爲「DBprefix_wti_like_post」,因爲「$ wpdb-> posts」轉換爲「DBprefix_posts」。我的假設是錯誤的。據我所知,它根本不會轉換爲任何東西,大概是因爲它不是內置的WordPress表格。 需要的是「** {$ wpdb-> prefix} wti_like_post **」,這會強制數據庫前綴到位。 現在有效。 非常感謝兩位評論員提出的心理提示,詢問價值如何出現! –