PDO抽象类。
PDO抽象类中有所有操作数据库的方法,在PHP端操作数据库时,通过PDO类的对象来操作数据库,这
样可以实现通过同样的语句操作不同的数据库
首先要实例化这个类的一个对象。
$pdo = new PDO('参数一','参数2','参数3');
PDO类的构造函数的三个参数分别是:
参数一是连接类型,主机名,数据库名 写法类似:'mysql:host=localhost;dbname=database'
参数2 是 数据库的用户名
参数2 是 数据库的密码
实例化对象后,要通过类的方法操作数据库
首先有一个sql语句,通过PDO操作数据库是,查看语句使用query()方法,返回一个PDOStatement对
象,增删改使用exec()方法返回受影响的行数
$sql='select * from tablename';
$statement = $pdo->query($sql);
//要获得数据要使用PDOStatement对象的fetch()/fetchAll()/fetchColumn()方法;
//fetch() 获得结果中的下一条记录;
//fetchAll() 获得结果中的所有记录;
//fetchColumn() 获得数据中某一列的值,参数是列的索引
$rows=$statement->fetchAll(PDO::FETCH_ASSOC);
这是查询数据的步骤
增删改差别不大:
$sql='delete * from tablename where id=1';
$res = $pdo->exec($sql);
PDO的预处理机制很好理解,将sql语句相同的部分提前处理以提高性能,数据部分使用站位字符代
替,使用prepare()预处理没有数据的sql语句,之后再用PDOStatement类的bindParam()方法绑定数
据,最后使用execute()方法执行编译结果
例如:
$sql="insert into tablename value(":id",":name",":score")"//:站位字符名 表示站位字符
$statement = $pdo->prepare($sql); //返回一个PDOStatement对象
$statement->bindParam(":id",1)
$statement->bindParam(":name",name)
$statement->bindParam(":score",123)
$statement->execute();
PDO的错误预处理机制:
默认是静默模式
静默模式:
PDO默认情况下不提示错误出在哪里,只会报语法错误
如何获得错误出在哪里?
通过指定固定的方法获得错误信息
errorInfo()
errorCode() 获得错误的信息和错误编码
警告模式:
发出一个警告,警告你错误出在哪里了,代码还会继续往下走
如何从静默模式切换到 警告模式 或者 异常模式
setAttribute(参数1,模式名称;参数2,模式的值) 来实现的
模式名称:ATTR_ERRMODE
模式的值:PDO::ERRMODE_WARNING PDO::ERRMODE_SILENT PDO::ERRMODE_EXCEPTION
异常模式:
出现错误之后会抛出一个异常,需要捕获这个异常,否则会报一个致命错误
捕获之后根据自己的需要,是让他显示呢,还是输出呢?
通过
try{
}catch(PDOException $e){
}
来捕获
主要通过更改类的变量来更改错误提示方式
其他请各位看官自己钻研吧。。。楼主也迷茫呢。。。。
PDO抽象类中有所有操作数据库的方法,在PHP端操作数据库时,通过PDO类的对象来操作数据库,这
样可以实现通过同样的语句操作不同的数据库
首先要实例化这个类的一个对象。
$pdo = new PDO('参数一','参数2','参数3');
PDO类的构造函数的三个参数分别是:
参数一是连接类型,主机名,数据库名 写法类似:'mysql:host=localhost;dbname=database'
参数2 是 数据库的用户名
参数2 是 数据库的密码
实例化对象后,要通过类的方法操作数据库
首先有一个sql语句,通过PDO操作数据库是,查看语句使用query()方法,返回一个PDOStatement对
象,增删改使用exec()方法返回受影响的行数
$sql='select * from tablename';
$statement = $pdo->query($sql);
//要获得数据要使用PDOStatement对象的fetch()/fetchAll()/fetchColumn()方法;
//fetch() 获得结果中的下一条记录;
//fetchAll() 获得结果中的所有记录;
//fetchColumn() 获得数据中某一列的值,参数是列的索引
$rows=$statement->fetchAll(PDO::FETCH_ASSOC);
这是查询数据的步骤
增删改差别不大:
$sql='delete * from tablename where id=1';
$res = $pdo->exec($sql);
PDO的预处理机制很好理解,将sql语句相同的部分提前处理以提高性能,数据部分使用站位字符代
替,使用prepare()预处理没有数据的sql语句,之后再用PDOStatement类的bindParam()方法绑定数
据,最后使用execute()方法执行编译结果
例如:
$sql="insert into tablename value(":id",":name",":score")"//:站位字符名 表示站位字符
$statement = $pdo->prepare($sql); //返回一个PDOStatement对象
$statement->bindParam(":id",1)
$statement->bindParam(":name",name)
$statement->bindParam(":score",123)
$statement->execute();
PDO的错误预处理机制:
默认是静默模式
静默模式:
PDO默认情况下不提示错误出在哪里,只会报语法错误
如何获得错误出在哪里?
通过指定固定的方法获得错误信息
errorInfo()
errorCode() 获得错误的信息和错误编码
警告模式:
发出一个警告,警告你错误出在哪里了,代码还会继续往下走
如何从静默模式切换到 警告模式 或者 异常模式
setAttribute(参数1,模式名称;参数2,模式的值) 来实现的
模式名称:ATTR_ERRMODE
模式的值:PDO::ERRMODE_WARNING PDO::ERRMODE_SILENT PDO::ERRMODE_EXCEPTION
异常模式:
出现错误之后会抛出一个异常,需要捕获这个异常,否则会报一个致命错误
捕获之后根据自己的需要,是让他显示呢,还是输出呢?
通过
try{
}catch(PDOException $e){
}
来捕获
主要通过更改类的变量来更改错误提示方式
其他请各位看官自己钻研吧。。。楼主也迷茫呢。。。。