zoukankan      html  css  js  c++  java
  • PHP错误调试

    一:错误类型举例

    1.语法错误:一般是语句最后缺少分号、缺少单引号或双引号、for循环或函数缺少花括号、缺少变量标示符$

    2.定义错误:一般是调用不存在的变量、调用不存在的函数或者类

    3.逻辑错误:代码的逻辑错误导致的功能无法实现

    4.运行错误:调用不存在的文件、数据库服务器,数据库,数据表和数据引发的错误、读写文件、运算错误

    5.环境错误:一般为操作系统、php版本、php配置

    二:程序调试方法

    1.应用die()语句调试

    <?php 
    $conn=mysql_connect("localhost","root","111") or die("服务器连接失败:".mysql_error());    //连接服务器
    echo "服务器连接成功!<br>";
    mysql_select_db("db_databas21",$conn) or die ("数据库连接失败:".mysql_error());        //连接数据库
    echo "数据库连接成功!";
    mysql_query("set names utf8");                //设置数据库编码格式
    ?>

    使用die()语句进行程序调试时,查询出错误后会终止程序的运行,并在浏览器显示出错之前的信息和错误信息。常用在连接数据库中

    2.应用mysql_error()语句输出SQL语句中的错误信息

    <?php 
              $sql="select * from tb_logs ";
    
              echo mysql_error();

    *mysql_error()函数只返回最近一次执行的错误脚本

    3.应用try{}catch{}语句抛出并捕获异常

    <?php 
    try{                                                // 检测异常
        $fp=@fopen("text.txt","r");                    // 在此处通过@屏蔽了错误的输出
         if($fp){
              fwrite($fp ,"文件权限设置错误!");            // 写入数据
               fclose($fp);                                 // 关闭文件    
        }else{
            throw new Exception();                    // 抛出异常    
        }
    }catch(Exception $e){                            // 捕获并处理异常
        echo "读取文件时出现错误!";
        die ("错误出现的行数: " . $e->getLine() . "<br/>");    // 返回错误出现的行数
    }
    ?>

    *try的功能是检测异常,catch的功能是捕获异常,throw的功能是抛出异常

    PHP异常处理Exception类的构造方法接受两个参数:错误信息和错误代码

    Exception类提供了许多内置方法,用于输出各种错误信息;

    三:错误处理技巧

    1.隐藏错误

    @符号在任何表达式前面使用,即可以在任何有值或者可以计算出值的表达式之前使用

    2.自定义错误页面

    定义错误信息通常使用if语句来完成,如果没有错误执行什么代码,如果有错误使用header()函数,跳转至显示错误信息的页面

    3.解决数据库出现乱码问题

    在处理页面加上:mysql_query('set names utf-8');

  • 相关阅读:
    主席树学习记录
    P1072 Hanson 的趣味题 题解
    好文章收集
    计算几何专题
    小问题
    CSP-S2020题解
    上下界网络流
    想到的无法解决的点子
    省选联考2020组合数问题
    省选数学复习
  • 原文地址:https://www.cnblogs.com/xingyue1988/p/6500699.html
Copyright © 2011-2022 走看看