I am using WordPress
to create a website. I am getting the following error on my pages only and no shortcodes are working due to this error. This error ONLY occurs on PAGES; they are working fine on POSTS. How can I fix this error?
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 '' at line 1]
SELECT wp_users.ID, wp_users.user_nicename FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id WHERE wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%administrator%'
OR wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%subscriber%'
OR wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%author%'
OR wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%editor%'
OR wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%contributor%'
ORDER BY wp_users.user_nicename LIMIT 0,
Use this query
SELECT wp_users.ID, wp_users.user_nicename FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id WHERE wp_usermeta.meta_key = 'wp_capabilities' AND wp_usermeta.meta_value LIKE '%administrator%' OR wp_usermeta.meta_key = 'wp_capabilities' AND wp_usermeta.meta_value LIKE '%subscriber%' OR wp_usermeta.meta_key = 'wp_capabilities' AND wp_usermeta.meta_value LIKE '%author%' OR wp_usermeta.meta_key = 'wp_capabilities' AND wp_usermeta.meta_value LIKE '%editor%' OR wp_usermeta.meta_key = 'wp_capabilities' AND wp_usermeta.meta_value LIKE '%contributor%' ORDER BY wp_users.user_nicename LIMIT 0
you had just remove ,
from last of LIMIT 0.
if you have to display between limit e.g. LIMIT 0,50
then you need to use ,
otherwise you need to remove ,
from last.
Please check this updated query in your database.
SELECT wp_users.ID, wp_users.user_nicename FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id WHERE wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%administrator%'
OR wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%subscriber%'
OR wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%author%'
OR wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%editor%'
OR wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%contributor%'
ORDER BY wp_users.user_nicename LIMIT 0
imo, the inner join is preferential in this case.
regardless, here is a query that corrects many of the apparent problems in your query.
SELECT
`wp_users.ID`,
`wp_users.user_nicename`
FROM
`wp_users`,
`wp_usermeta`
WHERE
`wp_users.ID`='YOUR_ID_VARIABLE',
AND `wp_usermeta.user_id`=`wp_users.ID',
AND `wp_usermeta.meta_key`='wp_capabilities'
AND `wp_usermeta.meta_value` REGEXP '^administrator|subscriber|author|editor|contributor$'
ORDER BY
`wp_users.user_nicename`
explanation of some problems from what i'm guessign you are trying to do:
LIMIT 0,
basically means "start at row 0 and take 0 rows". if you used LIMIT 0,10
you would get results up to 10 rows -- "start at row 0 and take 10 rows". LIMIT 3
is shorthand for LIMIT 0,3
but i don't see why you need to define a LIMIT at all
you use AND then OR many times but did not encapsulate them in ()
to make it clear to the query how to compare. arbitrary example:
WHERE column='this' AND (other_column='that' OR other_column='the other') AND (that_column='something else' OR this_column='something else')
and your using LIKE comparisons with wildcards %
but i think you really want to match the default wordpress roles specifically -- not just whre it is contained in the data as your LIKE '%%' suggests.
you could use = comparisons if you don't feel comfortable with regular expressions:
SELECT
`wp_users.ID`,
`wp_users.user_nicename`
FROM
`wp_users`,
`wp_usermeta`
WHERE
`wp_users.ID`='YOUR_ID_VARIABLE',
AND `wp_usermeta.user_id`=`wp_users.ID',
AND `wp_usermeta.meta_key`='wp_capabilities'
AND (
`wp_usermeta.meta_value` = 'administrator'
OR `wp_usermeta.meta_value` = 'editor'
OR `wp_usermeta.meta_value` = 'author'
OR `wp_usermeta.meta_value` = 'contributor'
OR `wp_usermeta.meta_value` = 'subscriber'
)
ORDER BY
`wp_users.user_nicename`