Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询以选中';函数名解析和解析';参考手册中的章节_Php_Mysql - Fatal编程技术网

Php 查询以选中';函数名解析和解析';参考手册中的章节

Php 查询以选中';函数名解析和解析';参考手册中的章节,php,mysql,Php,Mysql,有人能给我解释一下这是怎么回事吗 SELECT COUNT (`ID`) FROM `tableImSpecifying` WHERE `VisitorsEmail` = '$VarThatHoldsEmailFromA$_POSTInput' 这是一个程序的一部分,我正在写一个教程,但我挂断了如何解决这个问题。如果有人能告诉我如何解决这个问题,我将不胜感激,并提前向您表示感谢 下面是我看到的错误: 函数myhost_classifieds.COUNT不存在。检查参考手册中的“函数名解析和解析

有人能给我解释一下这是怎么回事吗

SELECT COUNT (`ID`) FROM `tableImSpecifying` WHERE `VisitorsEmail` = '$VarThatHoldsEmailFromA$_POSTInput'
这是一个程序的一部分,我正在写一个教程,但我挂断了如何解决这个问题。如果有人能告诉我如何解决这个问题,我将不胜感激,并提前向您表示感谢

下面是我看到的错误:

函数myhost_classifieds.COUNT不存在。检查参考手册中的“函数名解析和解析”部分

让我感到困惑的是,我在上面有类似的查询,这些查询工作正常,我反复检查了语法,但我看不出有什么问题。

更改:

SELECT COUNT (`ID`) 

空间搞砸了。

试试这个

 SELECT COUNT(`ID`) FROM `tableImSpecifying` WHERE `VisitorsEmail` = '$VarThatHoldsEmailFromA$_POSTInput'
            ^^-------remove space here
这:

函数myhost_classifieds.COUNT不存在。检查参考手册中的“函数名解析和解析”部分

会提示你吗

这导致你改变了这一点:

COUNT (`ID`)
致:

(请注意删除的空格)


(您也可以随意使用,但我不推荐新手使用。

MYSQL不喜欢函数名后面的空格。请尝试在计数后去掉空格


我还认为这些变量名只是一个示例,您在生产中没有实际使用它们!

我在运行查询时也遇到了同样的问题

SELECT MIN (released_year) FROM books
在那里我遇到了错误

FUNCTION records.MIN does not exist.
Check the 'Function Name Parsing and Resolution' section in the Reference Manual.  
但当我删除MIN和(发布年份)之间的空格时,它起了作用,因此正确的答案是:

SELECT MIN(released_year) FROM books

简单地说,据Wrikken所说

要将名称用作表达式中的函数调用,名称和以下字符(括号字符)之间不得有空格

所以这个表达,

SELECT COUNT (`ID`) FROM `tableImSpecifying` WHERE `VisitorsEmail` = '$VarThatHoldsEmailFromA$_POSTInput'
无法工作,因为计数和()之间有空格。只需删除空格并将其更改为:

SELECT COUNT('ID') ...

可能与您试图将一组变量组合在一起有关。您不应该在查询中使用原始数据而不转义它!使用准备好的/参数化的查询,否则您会发现自己很快被SQL注入攻击。我猜您的问题在这里:
$VarThatHoldsEmailFromA$\u POSTInput
试试看重复这句话,看看它是否正确Hi@Brad你能详细解释一下吗?如果我把一堆变量拼凑在一起,这不是恶意的。一点也不是。我只是一个新手,试图尽我所能学习。解决方法可能很简单,只要去掉
COUNT
(ID)之间的空格
。我们可以看到您完整的PHP/mySQL代码吗?这有什么不对?
SELECT COUNT (`ID`) FROM `tableImSpecifying` WHERE `VisitorsEmail` = '$VarThatHoldsEmailFromA$_POSTInput'
SELECT COUNT('ID') ...