2.使用PDO访问数据库
来源:互联网 发布:pyqt windows 编辑:程序博客网 时间:2024/06/05 16:33
1.DSN:Data Source Name(数据源名称)。
2.通常我们使用Prepare和Execute方法查找数据库。调用PDO->prepare会返回一个PDOStatement对象,并在这个对象上调用execute,然后通过一个while循环重复调用PDOStatement->fetch方法来获取数据。
3.解决SQL查询中的错误
1)使用默认的静默模式。PDO::ERRMODE_SILENT
我们可以通过PDO->prepare返回的对象$stmt,在$stmt->execute()执行完成后,调用$code=$stmt->errorCode();方法。如果$code不会empty.则输出错误信息$stmt->errorInfo();
2)使用警告模式 PDO::ERRMODE_WARNING会产生一个PHP警告并设置errorCode属性
$dbh = new PDO($dsn,$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
3)使用异常模式PDO::ERRMODE_EXCEPTION会创建一个PDOException并设置errorCode属性
try
{
$dbh = new PDO($dsn,$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
……
}
catch(PDOException $e)
{
echo 'error:'.$e->getMessage();
echo 'file:' .$e->getFile();
……
}
PDO::ERRMODE_EXCEPTION允许将代码封装到一个try catch中,未捕获的异常将会导致脚本中断并显示堆栈跟踪找到哪里出了问题。
4.SQL注入漏洞
使用PDO::prepare会进行自动转译字符串,如果使用的是query,则我们必须要手动转译传入的数据,如:$dbh->quote($val);
5.一些辅助函数的用法
一般如果想要得到数据影响行,插入返回的ID。我们可以在执行完SQL语句即$stmt-execute()后调用相应的方法。如$stmt->rowCount()或$dbh->lastInsertId().
注:一般的方法只要用PDO::prepare产生的对象($stmt)即可,特别的是使用lastInsertId()方法需要用PDO对象($dbh)。
6.PDO的事务处理
使用PDO->beginTransaction()开始事务处理。如果一切顺利,最后使用PDO->commit()提交;如果出现问题,需要使用PDO->rollback()撤销。
7.PDO存储过程
建立存储过程不说了(假如现在创建一个getInfo()存储过程),直接看手册,调用的话:
try
{
$dbh = new PDO($dsn,$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql = 'CALL getinfo()';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$string = $stmt->fetch();
}
catch(PDOException $e)
{
echo 'error'.$e->getMessage();
}
8.mysqldump备份数据库
我写了一个类,请查看附件。
- 2.使用PDO访问数据库
- 使用PDO访问数据库
- PHP PDO访问数据库
- PHP PDO访问数据库
- 为什么 PHP 应该使用 PDO 方式访问数据库
- PDO数据库访问抽象层
- PHP PDO方式访问Mysql数据库实例
- PHP使用pdo连接数据库
- PHP数据库对象-PDO拓展 使用pdo连接数据库
- 2. PDO 的使用
- PHP5中使用PDO连接数据库
- PHP5使用PDO连接MySQL数据库 详解
- PHP PDO 数据库的连接与使用
- 使用PHP PDO操作各种数据库
- 数据库抽象层pdo的使用
- PHP 使用PDO操作数据库异常
- php使用PDO连接mysql数据库
- PHP数据库拓展之PDO使用总结
- WebScarab安装
- 1.程序设计和C语言
- 3.变量常量和数据类型
- 4.选择结构程序
- 5.循环结构程序设计
- 2.使用PDO访问数据库
- 6.文件操作
- struts2的标签tag
- 12.XML
- 12.Web service
- Struts 2的Action讲解
- 在Struts 2中国际化(i18n)您的应用程序
- 转换器(Converter)——Struts 2.0中的魔术师
- 在Struts 2.0中实现表单数据校验(Validation)