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

时间:2011-04-03 03:01:26

标签: 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 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_FNAME'。但是当我直接通过MySQL运行它(我通过连接到数据库的程序运行它)时,它会返回我想要的结果而不会出错。

这可能是显而易见的事情,但我需要另一组眼睛来帮助弄明白。

谢谢!

更新:我有一个动态创建此查询的文件,其中包含通过GET网址提供的变量。我使用mysql_real_escape_string()转义这些变量,然后将它们放在它们的位置,然后运行查询。问题似乎与查询的动态性质有关;如果我将查询复制并粘贴在一起后,将其作为字符串放入我的文件并运行它,它工作正常。我尝试将动态查询转换为一个字符串,但它没有解决问题。有什么想法吗?

更新2:我今天去查看应用程序,尝试再次调试问题,它突然正常工作,我不知道它会起什么作用 - 因为我没有做任何事情除了试图清理我正在运行的文件中的代码...感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

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

[Database].[table].[field]

首先尝试运行一个小查询,看看问题究竟是什么,特别是对于给你错误的字段。

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

祝你好运!