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

时间:2015-09-22 12:25:15

标签: php mysql sql

我有这样的查询:

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。对不起,如果这些信息不够,但我不知道还能提供什么(但是请问,我会交付!)

我应该说明这个专栏&#34;德国&#34;表格中确实存在&#34; translate_content&#34;,我尝试在后面的刻度中封装列名。当我使用COALESCE函数时,似乎只会出现这个问题,但是当我将它复制并粘贴到数据库中时,我不知道它是如何工作的,但是当我直接从PHP运行时却不行:/ < / p>

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

使用列别名,如

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

顺便说一句,您的查询可以使用IN运算符进行修改,如下所示,无需使用UNION ALL

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