SQL查询在数据库中运行,但在PHP中说“未定义索引”


SQL query runs in database, but in PHP says "undefined index"

我有一个这样的查询:

SELECT COALESCE(MAX(german),"DEFAULT") from translate_content WHERE english = :englishContent0 UNION ALL
SELECT COALESCE(MAX(german),"DEFAULT") from translate_content WHERE english = :englishContent1 UNION ALL
SELECT COALESCE(MAX(german),"DEFAULT") from translate_content WHERE english = :englishContent2

的想法是,如果没有找到一个值,那么它将返回值"DEFAULT"。我的问题是,这个查询工作得很好,当我直接在数据库中运行它,但当我在PHP中尝试它,我得到一个错误说"未定义的索引:"德国"。

我使用MySQL和PHP 5.5.11。我很抱歉,如果这是不够的信息,但我不知道还能提供什么(但问,我会交付!)

我可能应该声明列"german"确实存在于表"translate_content"中,并且我已经尝试将列名封装在反引号中。这个问题似乎只有在我使用COALESCE函数时才会出现,但是当我将它复制并粘贴到数据库中时,我不知道它是如何工作的,但是当我直接从PHP运行它时就不会了:/

使用像

这样的列别名

SELECT COALESCE(MAX(german),"DEFAULT") AS Column1

BTW,您的查询可以使用IN操作符修改,不需要使用UNION ALL

SELECT COALESCE(MAX(german),"DEFAULT") AS some_column
from translate_content WHERE english IN (:englishContent0,:englishContent1,:englishContent2)