MySQL在PHP中运行时出错,但在phpMyAdmin中没有

MySQL在PHP中运行时出错,但在phpMyAdmin中没有,php,mysql,sql,Php,Mysql,Sql,我在这里查过这个问题的答案,但似乎找不到。其他问题是关于不返回结果,但我的问题抛出了一个SQL错误 我通过PHP运行了以下查询: SELECT WISH.CUST_ID, CUSTOMER.CUST_LNAME, CUSTOMER.CUST_FNAME, WISH.ITEM_ID, ITEM.ITEM_NAME, WISH.WISH_NOTES, WISH.WISH_ADDED, WISH.WISH_DELETED FROM WISH LEFT JOIN ITEM

我在这里查过这个问题的答案,但似乎找不到。其他问题是关于不返回结果,但我的问题抛出了一个SQL错误

我通过PHP运行了以下查询:

SELECT WISH.CUST_ID, CUSTOMER.CUST_LNAME, CUSTOMER.CUST_FNAME, 
       WISH.ITEM_ID, ITEM.ITEM_NAME, WISH.WISH_NOTES, 
       WISH.WISH_ADDED, WISH.WISH_DELETED
FROM WISH
LEFT JOIN ITEM ON WISH.ITEM_ID = ITEM.ITEM_ID
LEFT JOIN CUSTOMER ON WISH.CUST_ID = CUSTOMER.CUST_ID
WHERE WISH.CUST_ID != -1 AND CUSTOMER.CUST_FNAME LIKE '%k%' 
ORDER BY ITEM.ITEM_DELETED ASC 
LIMIT 0, 15
当我在PHP中运行它时,它给出了以下错误:“where子句”中的未知列“CUSTOMER.CUST\u FNAME”。但当我直接通过MySQL运行它时(我通过连接到数据库的程序运行),它会返回我想要的结果,不会出错

这可能是显而易见的,但我需要另一双眼睛来帮助我弄清楚

谢谢大家!

更新:我有一个文件,该文件通过GET url动态创建此查询,其中包含变量。我使用mysql\u real\u escape\u string()对这些变量进行转义,然后将它们放在它们的位置,并运行查询。问题似乎在于查询的动态性;如果在组合查询后复制并粘贴查询,将其作为字符串放入文件并运行,则效果良好。我试图在动态查询组合在一起后将其转换为字符串,但没有解决问题。有什么想法吗


更新2:我今天去看应用程序,试图再次调试这个问题,但它突然起作用了,我不知道是什么让它起作用了——因为我除了尝试清理我正在运行的文件中的代码外,什么都没做……不过感谢大家的帮助

如果是连接错误,您将收到一个PHP错误,因为这是一个MySQL错误,我可以假设您有一个连接资源,但是,如果未选择数据库,请确保:
mysql\u select\u数据库($dbname,$conn)
指向正确的数据库。 如果失败,您可以尝试使用查询本身连接到正确的数据库

[Database].[table].[field]
首先试着运行一个小的查询,看看问题到底出在哪里,特别是给出错误的字段

最终你会发现这是一个愚蠢的错误


祝你好运

如果是连接错误,您将收到一个PHP错误,因为这是一个MySQL错误,我可以假设您有一个连接资源,但是,如果未选择数据库,请确保:
mysql\u select\u数据库($dbname,$conn)
指向正确的数据库。 如果失败,您可以尝试使用查询本身连接到正确的数据库

[Database].[table].[field]
首先试着运行一个小的查询,看看问题到底出在哪里,特别是给出错误的字段

最终你会发现这是一个愚蠢的错误


祝你好运

确保连接到正确的数据库?我唯一能想到的是两者之间的变化。@mazzzzz:我确信它是连接的,我有一个数据库类,它可以在我的应用程序中保持连接,如果我删除where子句的那部分,查询可以通过php正常运行。@bensiu:如左图或右图所示?也许我应该-我以后可能会这样做,但它仍然应该按原样运行查询…@bensiu:我用左连接更新了问题,并在我的代码中做了同样的操作。左连接不是正确的,除非你可以有一个没有项目/客户的愿望。内部连接可能是一种方式。这与JOIN相同,因此不确定这是一个问题。请确保您连接了正确的数据库?我唯一能想到的是两者之间的变化。@mazzzzz:我确信它是连接的,我有一个数据库类,它可以在我的应用程序中保持连接,如果我删除where子句的那部分,查询可以通过php正常运行。@bensiu:如左图或右图所示?也许我应该-我以后可能会这样做,但它仍然应该按原样运行查询…@bensiu:我用左连接更新了问题,并在我的代码中做了同样的操作。左连接不是正确的,除非你可以有一个没有项目/客户的愿望。内部连接可能是一种方式。这将与JOIN相同,因此不确定这是一个问题。这与未选择数据库无关,因为如果我删除where子句中的“CUSTOMER.CUST_FNAME LIKE“%k%”部分,它就会起作用。我还将查询移动到另一个要运行的文件,它执行得非常好-但我需要它在它最初所在的文件中运行,所以我必须弄清楚这一点。这与没有选择数据库无关,因为如果我删除where子句中的“CUSTOMER.CUST_FNAME LIKE“%k%”部分,它就可以工作。我还将查询移动到另一个要运行的文件,它执行得非常好-但我需要它在它最初所在的文件中运行,所以我必须弄清楚这一点。