PHP文件里的2句@mysql_query("UPDATE users SET s_abc=0 WHERE us='kuku'");mysql_query("UPDATE users SET s_abc=0 WHERE us='kuku'");
就是多一个 @ 号,请问它们有什么不同吗? 不解

解决方案 »

  1.   

    有了@后,如果mysql_query执行异常抛出出错信息,会被屏蔽不显示。
      

  2.   

    @  不显示错误信息
    错误抑制符。 mysql_query 如果他出现错误 @会把它屏蔽掉,不会显示错误。
    我在开发项目都不加,一般都有错误处理的基类。
      

  3.   

    @ 错误控制符,屏蔽错误信息。
    在代码中一般不加@,在执行sql时,最好这样写:$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();
    }便于查找错误出处,以及时修改。
      

  4.   

    去掉@ 出现错误 die 之后将错误信息写入日志文件,以便排错.