3. PDOStatement 对象
来源:互联网 发布:linux常用查看命令 编辑:程序博客网 时间:2024/04/29 15:01
1. quote()方法
login.php
<html><head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/></head><body><form action="index.php" method="post"> 用户名:<input type="text" name="username"><br/> 密 码:<input type="password" name="password"/><br/> <input type="submit" value="提交"/> <input type="reset" value="重置"/></form></body></html>
index.php
<?phpheader('content-type:text/html;charset=utf-8');$username = $_POST['username'];$password = $_POST['password'];try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "select * from user where username='{$username}' and password='{$password}'"; echo $sql,'<br/>'; $res = $pdo->quote($sql); echo $res; //var_dump($res);die; $stmt = $pdo->query($sql); echo $stmt->rowCount();} catch (PDOException $e) { echo $e->getMessage();}
2.预处理占位符
<?phpheader('content-type:text/html;charset=utf-8');$username = $_POST['username'];$password = $_POST['password'];try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); /*$sql = "select * from user where username=:username and password=:password"; $stmt = $pdo->prepare($sql); $stmt->execute(array(':username'=>$username,':password'=>$password));*/ $sql = "select * from user where username=? and password=?"; $stmt = $pdo->prepare($sql); $stmt->execute(array($username,$password)); echo $stmt->rowCount();} catch (PDOException $e) { echo $e->getMessage();}
3.绑定参数
命名参数占位符:try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "insert into user(username,password,email) values(:username,:password,:email)"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':username',$username,PDO::PARAM_STR); $stmt->bindParam(':password',$password,PDO::PARAM_STR); $stmt->bindParam(':email',$email); $username = 'abc123'; $password = 'abc123'; $email = 'ab123c@qq.com'; $stmt->execute(); echo $stmt->rowCount();} catch (PDOException $e) { echo $e->getMessage();}
问号占位符:header('content-type:text/html;charset=utf-8');try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "insert into user(username,password,email) values(?,?,?)"; $stmt = $pdo->prepare($sql); $stmt->bindParam(1,$username); //索引从 1 开始 $stmt->bindParam(2,$password); $stmt->bindParam(3,$email); $username = 'username1'; $password = 'username'; $email = 'username'; $stmt->execute(); echo $stmt->rowCount();} catch (PDOException $e) { echo $e->getMessage();}
删除:try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "delete from user where id>:id"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':id',$id,PDO::PARAM_INT); $id = 3; $stmt->execute(); echo $stmt->rowCount();} catch (PDOException $e) { echo $e->getMessage();}
4.bindValue()
可以让参数一些可变,一些不变:try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "insert into user(username,password,email) values(?,?,?)"; $stmt = $pdo->prepare($sql); $username = 'wwoo123'; $password = '123456aaa'; $stmt->bindValue(1,$username); $stmt->bindValue(2,$password); $stmt->bindValue(3,'imooc@imooc.com'); $stmt->execute(); echo $stmt->rowCount();} catch (PDOException $e) { echo $e->getMessage();}
try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "insert into user(username,password,email) values(:username,:password,:email)"; $stmt = $pdo->prepare($sql); $username = 'wwoo123weee'; $password = '123456aaa'; $stmt->bindValue(':username',$username); $stmt->bindValue(':password',$password); $stmt->bindValue(':email','imooc@imooc.com'); $stmt->execute(); echo $stmt->rowCount();} catch (PDOException $e) { echo $e->getMessage();}
5. bindColumn()
try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "select username,password,email from user"; $stmt = $pdo->prepare($sql); $stmt->execute(); echo '结果集的列数 : ' . $stmt->columnCount() . '<br/>'; var_dump($stmt->getColumnMeta(0)); //把列值绑定到指定变量 $stmt->bindColumn(1,$username); $stmt->bindColumn(2,$password); $stmt->bindColumn(3,$email); while ($stmt->fetch(PDO::FETCH_BOUND)) { echo '用户名:' . $username . '<br/>'; echo '密码:' . $password . '<br/>'; echo '邮箱:' . $email . '<br/>'; }} catch (PDOException $e) { echo $e->getMessage();}
6. fetchColunm()
try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "select id,username,password,email from user"; $stmt = $pdo->query($sql); var_dump($stmt); //得到结果集第一行的第一列 echo $stmt->fetchColumn(0); echo '<br/>'; //得到结果集第二行的第4列 echo $stmt->fetchColumn(3);} catch (PDOException $e) { echo $e->getMessage();}
7.debugDumpParams
try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "insert into user(username,password,email) valus(?,?,?)"; $stmt = $pdo->prepare($sql); $stmt->bindParam(1,$username,PDO::PARAM_STR); $stmt->bindParam(2,$password,PDO::PARAM_STR); $stmt->bindParam(3,$email,PDO::PARAM_STR); $username = 'testParam'; $password = 'testParamaaa'; $email = 'testParambbb'; $stmt->execute(); echo '<pre>'; $stmt->debugDumpParams(); echo '</pre>';} catch (PDOException $e) { echo $e->getMessage();}
try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "select * from user where username=:username and password=:password"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':username',$username,PDO::PARAM_STR); $stmt->bindParam(':password',$password,PDO::PARAM_STR); $username = 'testParam'; $password = 'testParamaaa'; $stmt->execute(); echo '<pre>'; $stmt->debugDumpParams(); echo '</pre>';} catch (PDOException $e) { echo $e->getMessage();}
8. nextRowset()
创建存储过程:create procedure test1()BEGIN select * from user; select * from qqlogin0;END
try { $dsn = 'mysql:host=localhost;dbname=test'; $pdo = new PDO($dsn,'root','123456'); $sql = "call test1()"; $stmt = $pdo->query($sql); $rowset = $stmt->fetchAll(PDO::FETCH_ASSOC); var_dump($rowset); echo '<br/>*****************第二个结果集*************<br/>'; $stmt->nextRowset(); $rowset2 = $stmt->fetchAll(PDO::FETCH_ASSOC); var_dump($rowset2);} catch (PDOException $e) { echo $e->getMessage();}
0 0
- 3. PDOStatement 对象
- PDOStatement对象的使用
- PDO预处理语句PDOStatement对象
- PDO预处理语句PDOStatement对象使用总结
- PDOStatement 类
- PHP学习笔记【三】之《数据库抽象层PDO---PDOStatement对象的使用》
- PHP PDO扩展 ----- PDOstatement
- PDOStatement::fetch()用法
- PDOStatement::bindParam的一个陷阱
- PDOStatement::bindParam的一个陷阱
- PDOStatement->bindParam SQL语句参数绑定
- php BUG66613 PDOStatement::columnCount文档BUG
- PHP:PDOStatement::rowCount()方法参数说明
- PDOStatement::bindParam() 和 foreach 的陷阱
- Oct 12 PDOStatement::bindParam的一个陷阱
- PHP:PDOStatement::setFetchMode()方法参数说明
- PDOStatement::execute(): MySQL server has gone away
- PDOStatement::bindParam 、bindValue、bindColumn实例比较
- 角色+武器
- 求集合{1,2,...,n}的长度小于M(M<=n)的所有子集
- HDU 2046 骨牌铺方格
- java.sql.SQLException: The Network Adapter could not establish the connection
- BZOJ 2342 SHOI 2011 双倍回文 Manacher
- 3. PDOStatement 对象
- Android中的线程池和AsyncTask异步任务(一)
- 毕业设计(二)——基于深度学习的一类图像共性特征提取 (caffe)
- 双边滤波器的原理及实现
- NuttX_基础组件之队列
- 类似支付宝条形码下方数字格式化
- .net 调用SQL数据库存储过程 并取得返回值
- CString转换char*
- MFC 单文档的全局变量