我已经在这里检查了这个问题的答案,但似乎无法找到它。其他问题一直是关于没有返回结果,但我的抛出一个SQL错误。MySQL错误,当通过PHP运行时,但不是在phpMyAdmin中
我有这个疑问,我通过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中运行它,它提供了以下错误:未知列“CUSTOMER.CUST_FNAME”在“where子句。但是当我通过MySQL直接运行它(通过连接到数据库的程序运行它)时,它会返回我想要的结果而不会出错。
这可能是显而易见的,但我需要另一双眼睛来帮助弄清楚。
谢谢!
更新:我有一个文件,动态创建此查询与通过GET网址给出的变量。我使用mysql_real_escape_string()转义这些变量,然后将它们放在自己的位置并运行查询。这个问题似乎与查询的动态性质有关;如果我在复制并粘贴查询后将查询复制并粘贴到一起,请将其作为字符串放入我的文件中并运行它,它可以正常工作。我试图在将动态查询放到一起时将其转换为字符串,但它没有解决问题。有什么想法吗?
UPDATE 2:我今天去看应用程序,尝试再次调试问题,它突然工作,我不知道它会如何工作 - 因为我还没有完成除了试图清理我正在运行的文件中的代码之外的任何内容......感谢大家的帮助!
确保你连接了正确的数据库?我只能想到两者之间的变化。 – Ben 2011-04-03 03:02:46
@mazzzzz:我确定它是连接的,我有一个数据库类,它可以保持跨应用程序的连接,如果删除where子句的那部分,查询可以通过php运行。 – Key 2011-04-03 03:04:59
你应该定义'JOINs' – bensiu 2011-04-03 03:07:18