php开发教程PDO案例代码源码附件下载
开启PDO连接MySQL扩展
- extension=php_pdo_mysql.dll
复制代码 执行数据操作语句方法:$pdo->exec($sql),执行数据增、删、改语句,执行成功返回受影响的记录数,如果SQL语句错误返回false。 语法代码: - <?php
- //1、实例化PDO
- $dsn='mysql:host=localhost;port=3306;dbname=data;charset=utf8';
- $pdo=new PDO($dsn,'root','root');
- //2执行数据操作语句
- //2.1 执行增加
- /*
- if($pdo->exec("insert into news values (null,'bb','bbbbbb',unix_timestamp())"))
- echo '自动增长的编号是:'.$pdo->lastInsertId (),'<br>';
- */
- //2.2 执行修改
- //echo $pdo->exec("update news set title='静夜思' where id in (3,4)");
- //2.3 执行删除
- //echo $pdo->exec('delete from news where id=5');\
- //2.4 完善
- $sql="update news set title='静夜思1' where ids in (3,4)";
- $rs=$pdo->exec($sql);
- if($rs){
- echo 'SQL语句执行成功<br>';
- if(substr($sql, 0,6)=='insert')
- echo '自动增长的编号是:'.$pdo->lastInsertId (),'<br>';
- else
- echo '受到影响的记录数是:'.$rs,'<br>';
- }elseif($rs===0){
- echo '数据没有变化<br>';
- }elseif($rs===false){
- echo 'SQL语句执行失败<br>';
- echo '错误编号:'.$pdo->errorCode(),'<br>';
- //var_dump($pdo->errorInfo());
- echo '错误信息:'.$pdo->errorInfo()[2];
- }
复制代码 执行数据查询语句方法:$pdo->query($sql),返回的是PDOStatement对象 - <?php
- $dsn='mysql:dbname=data;charset=utf8';
- $pdo=new PDO($dsn,'root','root');
- //1、执行数据查询语句
- $stmt=$pdo->query('select * from products');
- //var_dump($stmt); //object(PDOStatement)
- //2、获取数据
- //2.1 获取二维数组
- //$rs=$stmt->fetchAll(); //默认返回关联和索引数组
- //$rs=$stmt->fetchAll(PDO::FETCH_BOTH); //返回关联和索引数组
- //$rs=$stmt->fetchAll(PDO::FETCH_NUM); //返回索引数组
- //$rs=$stmt->fetchAll(PDO::FETCH_ASSOC); //返回关联数组
- //$rs=$stmt->fetchAll(PDO::FETCH_OBJ); //返回对象数组
- //2.2 获取一维数组,匹配完成后指针下移一条
- //$rs=$stmt->fetch(); //关联和索引数组
- //$rs=$stmt->fetch(PDO::FETCH_NUM); //索引数组
- //例题:通过while循环获取所有数据
- /*
- while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
- $rs[]=$row;
- }
- echo '<pre>';
- var_dump($rs);
- */
- //3.3 匹配列:匹配当前行的第n列,列的编号从0开始,匹配完毕后指针下移一条
- //echo $stmt->fetchColumn(); //获取当前行的第0列
- //echo $stmt->fetchColumn(1); //获取当前行的第1列
- //3.4 总行数,总列数
- /*
- echo '总行数:'.$stmt->rowCount(),'<br>';
- echo '总列数:'.$stmt->columnCount();
- */
- //3.5 遍历PDOStatement对象(PDOStatement对象是有迭代器的)
- foreach($stmt as $row){
- echo $row['proname'],'-',$row['proprice'],'<br>';
- }
复制代码stdClass类是所有PHP类的父类
|