Home >Backend Development >PHP Tutorial > 请教这两句 SQL 语句,有什么不同的功能吗

请教这两句 SQL 语句,有什么不同的功能吗

WBOY
WBOYOriginal
2016-06-13 13:28:06934browse

请问这两句 SQL 语句,有什么不同的功能吗?
PHP文件里的2句

@mysql_query("UPDATE users SET s_abc=0 WHERE us='kuku'");

mysql_query("UPDATE users SET s_abc=0 WHERE us='kuku'");


就是多一个 @ 号,请问它们有什么不同吗? 不解

------解决方案--------------------
有了@后,如果mysql_query执行异常抛出出错信息,会被屏蔽不显示。
------解决方案--------------------
@ 不显示错误信息
错误抑制符。 mysql_query 如果他出现错误 @会把它屏蔽掉,不会显示错误。
我在开发项目都不加,一般都有错误处理的基类。
------解决方案--------------------
@ 错误控制符,屏蔽错误信息。
在代码中一般不加@,在执行sql时,最好这样写:

PHP code

$sql="select * from table where dqs='{$dqs}'";
$res = mysql_query($sql);
if(!$res)
    die("SQL:{$sql}<br>Error:".mysql_error());
if(mysql_affected_rows() > 0){
    $arr = array();
    while($rows = mysql_fetch_array(MYSQL_ASSOC)){
        array_push($arr,$rows);
    }
}else{
    echo "查询失败<br>Error:".mysql_error();
}
<br><font color="#e78608">------解决方案--------------------</font><br>@是屏蔽错误信息<br>建议:测试的时候不要用,这样有利于检查错误和发现问题,<br>如果项目投入使用,建议加上这个,这样,出现错误信息就<br>不会影响用户的使用! <div class="clear">
                 
              
              
        
            </div>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn