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');
PHP错误调试的更多相关文章
- 【转】段错误调试神器 - Core Dump详解
from:http://www.embeddedlinux.org.cn/html/jishuzixun/201307/08-2594.html 段错误调试神器 - Core Dump详解 来源:互联 ...
- 转 Python3 错误和异常/ Python学习之错误调试和测试
########sample 0 https://www.cnblogs.com/Simon-xm/p/4073028.html except: #捕获所有异常 except: <异常名> ...
- iOS 内存错误调试(EXC_BAD_ACCESS)
内存错误crash现场: Thread堆栈: 有可能是访问被释放对象造成,根据现场并不能找到具体哪个对象出现内存错误. 1.开启僵尸对象调试 Edit Scheme->Debug->Dia ...
- Linux的段错误调试方法
linux段错误的调试方法 相关博文: http://blog.csdn.net/htianlong/article/details/7439030 http://www.cnblogs.com/pa ...
- 段错误调试神器 - Core Dump详解
一.前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件某一行, 而是没有任何信息, 使得我们的调试变得 ...
- 极度郁闷的错误调试——ajax jquery
今天在写一个简单邮件验证的页面时,本来以为二十分钟的事情,却调试了一个半小时,简直郁闷,具体的错误如下: 在页面中,有一段如下的代码: <td colspan="3"> ...
- PDO错误调试
在服务器上用PDO操作数据库,怎么都获取不到数据,query语句返回null,但是同样的代码在本地运行无误.SO,开始找bug. <?php $host='localhost'; $dbname ...
- python之错误调试
无论谁写的程序,必定会存在bug,解决bug需要我们去调试程序.于是乎,在Python中,就会好几种调试手段,如print.assert.logging.pdb.pdb.set_trace() 一.使 ...
- 百度搜索_Selenium WebDriver 环境搭建和错误调试_chromedriver_win32必须下载否则无法测试chrome
转自: http://www.360doc.com/content/14/0821/18/597197_403634783.shtml zTree 东西不多,我也一直使用着原始的人工测试手段,随着内 ...
- python-8错误调试测试
1-错误处理 import logging try: print('try.......') r = 10/0 except ValueError as e: print('result:', e) ...
随机推荐
- Codeforces Round #450 (Div. 2) B. Position in Fraction【数论/循环节/给定分子m 分母n和一个数c,找出c在m/n的循环节第几个位置出现,没出现过输出-1】
B. Position in Fraction time limit per test 1 second memory limit per test 256 megabytes input stand ...
- 洛谷——P1186 玛丽卡
P1186 玛丽卡 题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道 ...
- Needle in a haystack: efficient storage of billions of photos 【转】
转自09年的blog,因为facebook在国内无法访问,故此摘录. The Photos application is one of Facebook’s most popular features ...
- 分享Kali Linux 2017年第17周镜像文件
分享Kali Linux 2017年第17周镜像文件 Kali Linux官方于4月23日发布2017年的第17周镜像.这次维持了11个镜像文件的规模.默认的Gnome桌面的4个镜像,E17.KD ...
- java基础篇5之泛型
1 泛型的基本应用 //反射方式 指定类型,就不用强转 Construcctor<String> constructor = String.class.getConstructor(Str ...
- [java面试]关于多态性的理解
执行时多态性是面向对象程序设计代码重用的一个最强大机制.Java多态性的概念也能够被说成"一个接口.多个方法".Java实现执行时多态性的基础是动态方法调度,它是一种在执行时而不是 ...
- Tomcat Manager用户名和密码
在浏览器输入http://localhost:8080/,打开Tomcat自带的默认主页面,右侧有“administration”“documentation”等模块.选择“administratio ...
- Python爬虫爬取美剧网站
一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打发一下时间.之前是能在视频网站上面在线看的,可是自从广电总局的限制令之后,进口的美剧英剧等貌似就不在像以前一样同步更新了.但是,作为一个宅diao ...
- java调试工具jdb
Finds and fixes bugs in Java platform programs. Synopsis jdb [options] [classname] [arguments] optio ...
- shell程序
例一:helloworld #!/bin/sh -x message="hello" read name echo "$message ,$name" 例二:选 ...