在使用PHP和MySQL的sql查询中获取语法错误


Getting syntax error in sql query using PHP and MySQL

我在使用 MySQL 查询时收到以下错误。

错误:#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的"o.user_id='RNAYAK2009@GMAIL.COM"和(o.status='Success' 或 o.status='Pending' 附近使用的正确语法

我在下面解释我的查询。

SELECT o.order_id,o.order_date,o.payment_amount,
       o.status,op.pro_data_id,pd.image,pd.pro_Id,pi.Product_name
FROM db_order AS o
LEFT JOIN db_order_products AS op ON o.order_id = op.order_id 
LEFT JOIN db_product_data AS pd ON op.pro_data_id=pd.pro_data_id 
LEFT JOIN db_product_info AS pi ON pd.pro_Id=pi.pro_Id 
WHERE o.user_id='RNAYAK2009@GMAIL.COM' 
    and (o.status='Successful' or o.status='Pending')

请帮助我解决此错误。

您可能需要重新粘贴它,但它看起来像您粘贴的两个错误:

pi.  Product_name

pi.pro_IdWHERE

格式错误,我们来了:

SELECT
        o.order_id,
        o.order_date,
        o.payment_amount,
        o.status,
        op.pro_data_id,
        pd.image,
        pd.pro_Id,
        pi.Product_name
    FROM
        db_order AS o
    LEFT JOIN db_order_products AS op ON o.order_id = op.order_id
    LEFT JOIN db_product_data AS pd ON op.pro_data_id = pd.pro_data_id
    LEFT JOIN db_product_info AS pi ON pd.pro_Id = pi.pro_Id 
    WHERE o.user_id = 'RNAYAK2009@GMAIL.COM'
    AND (
        o.status = 'Successful'
        OR o.status = 'Pending'
    )

按如下方式使用它:

    SELECT 
        o.order_id,
        o.order_date,
        o.payment_amount,
        o.status,
        op.pro_data_id,
        pd.image,
        pd.pro_Id,
        pi.Product_name
    FROM
        db_order AS o
            LEFT JOIN
        db_order_products AS op ON o.order_id = op.order_id
            LEFT JOIN
        db_product_data AS pd ON op.pro_data_id = pd.pro_data_id
            LEFT JOIN
        db_product_info AS pi ON pd.pro_Id = pi.pro_Id
    WHERE
        o.user_id = 'RNAYAK2009@GMAIL.COM'
            AND (o.status = 'Successful'
            OR o.status = 'Pending')