PHP-PDO对象使用常用方法
来源:互联网 发布:友谊南路有淘宝城吗? 编辑:程序博客网 时间:2024/05/22 17:30
PDO对象的使用
根据PHP官方计划,PHP6正式到来之时,数据库链接方式统一为PDO.使用PDO链接数据库过程中,还是感觉挺好用的,给我印象最深的是可以兼容跟更多数据库、其次名称式参数、对象的映射。
连接PDO有三种方式,下面以mysql为例:
第一种:直接链接数据库,个人比较常用的选择方式try{ //test是我自己的数据库,host是我本机 $dsn = "mysql:dbname=test;host=127.0.0.1"; $user = 'root'; $pwd = 'yangli'; $pdo = new PDO($dsn, $user, $pwd);}catch(PDOException $e){ echo $e->getMessage(); // 抛出异常信息 exit;}第二种: 通过url形式// $path就是你存放uri后面需要的信息的那个文件$path = 'D:\MyProject\myshop\PHPExcel\db.txt';![这就是db.txt文件的内容](http://img.blog.csdn.net/20151117165336637)$dsn = "uri:$path";$user = 'root';$pwd = 'yangli';$pdo = new PDO($dsn, $user, $pwd);第三种:通过php.ini配置文件![把dsn信息直接写到配置文件中,需要重启apache](http://img.blog.csdn.net/20151117165529462)$dsn = 'pdo';$user = 'root';$pwd = 'yangli';$pdo = new PDO($dsn, $user, $pwd);
以上代码是PHP连接pdo的三种方法,下面总结下个人在操作PDO对象中
一些常用方法。
PDO::exec(Sql); // 执行一条sql语句,返回受影响的行数,没有则返回0,不支持select语句PDO::query($sql); //查询语句PDO::prepare(); //PDO::execute(); //PDO::getAttribute();PDO::errorInfo();PDO::errorCode();
以上面这些方法做了一些用例:
PDO::exec() // PDO::exec()方法不支持select语句不会从结果集中获取数据,返回受修改或删除增加 SQL 语句影响的行数。如果没有受影响的行,则 PDO::exec() 返回 0。$sql = <<<SQL CREATE TABLE `user`( id int unsigned not null auto_increment comment '主键ID', `user` varchar(30) not null comment '用户名', `pwd` char(32) not null comment '密码', `email` varchar(30) not null comment '邮箱', primary key(`id`) )ENGINE=MYISAM default charset=utf8;SQL; $pdo->exec($sql); // 返回0, 因为没有受影响的行数// 插入一条语句$sql = "INSERT INTO user (user, pwd, email) VALUES('demo1', '".md5('demo1')."','test@163.com')";$pdo->exec($sql) // 返回1//插入多条语句$pwd = md5('demo1');$sql = <<<SQLINSERT INTO user(`user`, `pwd`, `email`)VALUES ('demo2', '{$pwd}', 'test@163.com'), ('demo3', '{$pwd}', 'test2@163.com'), ('demo4', '{$pwd}', 'test3@163.com'), ('demo5', '{$pwd}', 'test4@163.com')SQL;$res = $pdo->exec($sql);if(!$res){ echo '错误编号: '.$pdo->errorCode(); echo '<br />错误信息: '.print_r($pdo->errorInfo()); exit;}echo '受影响的行数: '.$res.'条'; // 4// 更新sql语句$sql = 'UPDATE user SET email="test1@qq.com" WHERE id = 1';$res = $pdo->exec($sql);if(!$res){ echo '错误的编号: '.$pdo->errorCode(); echo '<br />错误的信息: '.var_dump($pdo->errorInfo()); exit;}echo '受影响的行数'.$res.'条';// 删除语句$sql = "DELETE FROM user WHERE id = 1";$res = $pdo->exec($sql);if(!$res){ echo '错误的编号: '.$pdo->errorCode(); echo '<br />错误的信息: '.var_dump($pdo->errorInfo()); exit;}echo '受影响的行数'.$res.'条';
PDO::query(),PDO::prepare, PDO::execute()查询语句
PDO::query()查询$sql = "SELECT user, email FROM user WHERE id = 2";$stmt = $pdo->query($sql); // 返回一个statement对象foreach($stmt as $val){ echo 'user: '.$val['user']; // echo '<br />email: '.$val['email'];}// 下面是查询的时候常用的方式$sql = "SELECT id, uer, email FROM user";$stmt = $pdo->prepare($sql); // 执行一条预处理$sql = "SELECT * FROM user";$stmt = $pdo->prepare($sql); //准备一条预处理sql语句),返回一个statement对象;// 执行一条预处理语句if(!$stmt->execute()){ echo '错误的编号: '.$pdo->errorCode(); echo '<br />错误的信息: '.var_dump($pdo->errorInfo());exit;}// PDO::fetchAll()获取多条信息$res = $stmt->fetchAll(PDO::FETCH_ASSOC); // 第一个参数为返回数据类型, 这里设置返回为关联数组var_dump($res); // array() PDO::fetch();获取一条信息$sql = "SELECT * FROM user WHERE id = 2";$stmt = $pdo->prepare($sql); // 执行预处理语句,返回statement对象if(!$stmt->execute()){ echo '错误标号: '.$pdo->errorCode(); echo '错误的信息: '.var_dump($pdo->errorInfo());exit;}$res = $stmt->fetch(PDO::FETCH_ASSOC);var_dump($res);
设置数据库链接属性
1. PDO::ATTR_AUTOCOMMIT 2. PDO::ATTR_CASE 3. PDO::ATTR_CLIENT_VERSION 4. PDO::ATTR_CONNECTION_STATUS 5. PDO::ATTR_DRIVER_NAME 6. PDO::ATTR_ERRMODE 7. PDO::ATTR_ORACLE_NULLS 8. PDO::ATTR_PERSISTENT 9. PDO::ATTR_PREFETCH 10. PDO::ATTR_SERVER_INFO 11. PDO::ATTR_SERVER_VERSION 12. PDO::ATTR_TIMEOUT $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT); //事务是否提交,为1自动提交$pao->setAttribute(PDO::ATTR_AUTOCOMMIT,0);// 关闭
1 0
- PHP-PDO对象使用常用方法
- PHP-PDO对象使用常用方法
- php使用PDO方法详解
- pdo对象的常用方法 lastInsertId(),rowCount()
- PHP数据库对象-PDO拓展 使用pdo连接数据库
- PHP PDO数据对象
- PDO Php数据对象
- PDO常用方法
- PDO常用方法
- PDO常用方法
- PDO常用方法详解
- php使用PDO扩展连接PostgreSQL对象关系数据库
- [PHP]PDO的使用
- PHP 中使用 PDO
- php mysql PDO使用
- PHP PDO的使用
- php mysql PDO使用
- PHP 中使用 PDO
- libcurl 使用说明和网页抓取 linux下的curl编程
- ASP.NET MVC使用Uploadify上传文件
- Android快捷方式(ShortCut)创建以及删除
- BroadcastReceiver和EventBus区别
- children和childNodes 的区别
- PHP-PDO对象使用常用方法
- [git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF
- mac 零散知识记载
- Python基础学习-爬虫小试2
- R语言常用帮助函数
- 成长是自己的事——关于“日报系统”的思考
- java 遍历树的四种方式
- python命令行选项和参数分割
- 设计模式之观察者