When using these $wpdb to parse SQL statements as in plug-ins or external scripts or even WordPress code itself the following error or similar error may appear.
WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ORDER BY post_date ASC LIMIT 1’ at line 1]
SELECT ID, post_title FROM wp_posts WHERE post_date > ” AND post_date < ‘2006-08-28 09:03:57’ AND post_status = ‘publish’ AND ID != ORDER BY post_date ASC LIMIT 1
or (the following from bsuite B2V6),
WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ’s pages’ ELSE LEFT(b.post_title, 60) END AS title, SUM(a.hits_reads) AS sor’ at line 4]
SELECT a.post_id AS post_id, CASE WHEN b.post_title IS NULL THEN ‘Alice’s Home’ ELSE LEFT(b.post_title, 60) END AS title, SUM(a.hits_reads) AS sort_order, CONCAT(’Tot: ‘, FORMAT(SUM(a.hits_reads), 0), ‘, Avg: ‘, FORMAT((SUM(a.hits_reads)) / ((TO_DAYS(NOW()) – TO_DAYS(MIN(a.bstat_date))) + 1), 0), ‘, Max: ‘, FORMAT(MAX(a.hits_reads), 0), ‘’) AS note FROM wp_bstat_hits a LEFT JOIN wp_posts b ON (a.post_id = b.ID) WHERE bstat_date > ‘2006-08-03′ GROUP BY a.post_id ORDER BY sort_order DESC LIMIT 5
One of the reason for the errors is caused by post_ID or ID variable that represent the ID of the WordPress post. Depending on which version of PHP, MySQL or WordPress you used, the $post_id or $id or $post->ID can be placed within single quote (‘) as the workaround or resolution to avoid or solve the error.