2. PDO 的使用
2016-04-04 22:52
316 查看
1. exec()
1.1 建表 <?php try { $dsn = 'mysql:host=localhost;dbname=test'; $username = 'root'; $password = '123456'; $pdo = new PDO($dsn,$username,$password); //exec();执行一条 sql 语句,并返回受影响的记录的条数,如果没有受影响返回0 //exec 对 select 没有作用 $sql = <<<EOF create table if not exists user( id int unsigned auto_increment key, username varchar(20) not null unique, password char(32) not null, email varchar(32) not null ) EOF; $res = $pdo->exec($sql); var_dump($res); } catch (PDOException $e) { echo $e->getMessage(); } 返回 0;
插入记录: //插入一条记录 //$sql = 'insert user(username,password,email) values("wjh",md5("wjh"),"188@qq.com")'; //$res = $pdo->exec($sql); 返回 1 //插入多条记录 $sql = <<<EOF insert user(username,password,email) values("wjh1",md5("wjh"),"188@qq.com"), ("wjh2",md5("wjh"),"188@qq.com"), ("wjh3",md5("wjh"),"188@qq.com") EOF; $res = $pdo->exec($sql); // 返回 3 $pdo->lastInsertId(); //返回 最后一条插入记录的 ID
更新记录: $sql = 'update user set username="immoc" where id=3'; $res = $pdo->exec($sql);
删除记录 $sql = 'delete from user where id=2'; $res = $pdo->exec($sql);
获取错误信息: //删除记录 $sql = 'delete from user12 where id=2'; $res = $pdo->exec($sql); if ($res === false) { //返回数据库句柄上一次操作相关的SQLSTATE的值 echo $pdo->errorCode(); echo '<br/>'; //返回数据库句柄上一次操作错误信息的数组,数组包括3个单元 //1. 0 => SQLSTATE //2. 1 => 错误编号,CODE //3. 3 => 信息 $errInfo = $pdo->errorInfo(); var_dump($errInfo); } else { var_dump($res); }
2. query()
try { $pdo = new PDO('mysql:host=localhost;dbname=test','root','123456'); //$sql = 'select * from user where id=2;'; $sql = 'select * from user;'; //执行 sql 语句,返回PDOStatement对象 $stmt = $pdo->query($sql); foreach ($stmt as $row) { echo $row['id']; echo '<br/>'; echo $row['username']; echo '<br/>'; echo $row['password']; echo '<br/>'; echo $row['email']; echo '<br/>'; } } catch (PDOException $e) { echo $e->getMessage(); }
3.prepare() and execute()
try { $pdo = new PDO('mysql:host=localhost;dbname=test','root','123456'); $sql = "select * from user"; //返回一个 PDOStatement 对象 //prepare($sql);准备 sql 语句 $stmt = $pdo->prepare($sql); //设置默认的返回模式 $stmt->setFetchMode(PDO::FETCH_OBJ); // execute(); 执行预处理语句,返回布尔值 $res = $stmt->execute(); //取出结果集取出一条记录 // $row = $stmt->fetch(); if ($res) { while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { var_dump($row ); } } //用 fetchAll() /*$rows = $stmt->fetchAll(); var_dump($rows);*/ } catch (PDOException $e) { echo $e->getMessage(); }
4.getAttribute() and setAttribute()
try { $dsn = 'mysql:host=localhost;dbname=test'; $username = 'root'; $password = '123456'; $pdo = new PDO($dsn,$username,$password); // 默认为 1 ,自动提交 echo '自动提交 : ' . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT); echo '<br/>'; echo '默认错误处理模式 :' . $pdo->getAttribute(PDO::ATTR_ERRMODE); echo '<br/>'; $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0); echo '自动提交 : ' . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT); } catch (PDOException $e) { echo $e->getMessage(); }
<?php try { $dsn = 'mysql:host=localhost;dbname=test'; $username = 'root'; $password = '123456'; $pdo = new PDO($dsn,$username,$password); $attArr = array( 'AUTOCOMMIT', 'CASE', 'CLIENT_VERSION', 'CONNECTION_STATUS', 'DRIVER_NAME', 'ERRMODE', 'ORACLE_NULLS', 'PERSISTENT', 'PREFETCH', 'SERVER_INFO', 'SERVER_VERSION', 'TIMEOUT' ); foreach ($attArr as $attr) { echo "PDO_ATTR_$attr : "; echo $pdo->getAttribute(constant("PDO::ATTR_$attr")); echo '<br/>'; } } catch (PDOException $e) { echo $e->getMessage(); }
相关文章推荐
- View的测量
- 支付宝,微信接入需要注意点,招行银企直连接入注意点
- 模拟ATM柜员机界面
- Spring事务传播属性和级别
- php页面静态化
- 线性表的
- zookeeper3.4.6的可视化zkui2.0的安装
- 第十七章 适配器模式
- 如何调优JVM - 优化Java虚拟机(大全+实例)
- spring学习笔记(3)-aspectj的五种通知方法
- Android 学习笔记(5)—— ProgressBar
- ViewRoot和DecorView
- IOC控制反转
- 运行maven pom.xml文件后编译环境变为jdk1.5
- string的七种用法
- 锋利的jQuery第2版学习笔记6、7章
- JavaScript之数据类型
- bzoj 2510: 弱题
- cvCaptureFromCAM 分析
- eclipse项目导入as