Php 为什么赢了';删除错误抑制器后,是否有一行代码工作?
我正在使用PHP类连接到数据库。我无法解决一个问题--请帮我解决这个问题 我有一个功能:Php 为什么赢了';删除错误抑制器后,是否有一行代码工作?,php,error-suppression,Php,Error Suppression,我正在使用PHP类连接到数据库。我无法解决一个问题--请帮我解决这个问题 我有一个功能: function getCampus($cm_id) //returns campus name { $this->query = "select cm_name from campus where cm_id = ".$cm_id.";"; $rd = $this->executeQuery(); @$data = $rd->fetch_assoc(); } 当
function getCampus($cm_id) //returns campus name
{
$this->query = "select cm_name from campus where cm_id = ".$cm_id.";";
$rd = $this->executeQuery();
@$data = $rd->fetch_assoc();
}
当我从
@$data
中删除@
时,它不起作用。请帮帮我:解释一下这是什么,还有什么替代方法。谢谢。@
是错误抑制运算符。使用它作为代码行的前缀将抑制所有非致命错误。几乎每次都使用它是个坏主意
如果删除后没有输出,请尝试在文件顶部或引导类型文件中添加
error\u reporting(E\u ALL)
,并确保php.ini中的display\u errors=On
(也可以使用ini\u集(“display\u errors”,“On”)
).命令前面的@
符号用于忽略执行过程中发生的任何错误
当你把一个@
放在那行代码前面,但你看不到它时,那行代码仍然失败。尝试找出$rd->fetch_assoc()
的问题所在。而且,这个查询看起来相当错误 @用于抑制错误和警告
@不是您的问题在PHP表达式中使用时,@
会抑制该表达式的错误。因此,很可能是“它不工作”,因为$rd->fetch_assoc()
正在引发异常。定义“它不工作”,您能告诉我们您得到的错误吗?PS:我不懂SQL,但您可能需要将一些查询字符串部分大写。@Tanner我认为关键字大写是一种惯例,并没有严格执行。可能重复的您应该知道,@
只抑制警告而不是致命错误。@edit的HPDeveloper对我说的话做了相当大的修改。现在它并没有说使用@
是个坏主意,也没有在php.ini
中提到display\u errors=on
,这有时是个问题。