PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别


Posted in PHP onNovember 20, 2014

PDOStatement::bindParam — 绑定一个参数到指定的变量名。

绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。 不同于 PDOStatement::bindValue() ,此变量作为引用被绑定,并只在 PDOStatement::execute() 被调用的时候才取其值。

PDOStatement::bindValue — 把一个值绑定到一个参数。

绑定一个值到用作预处理的 SQL 语句中的对应命名占位符或问号占位符。

<?php

$stm = $pdo->prepare("select * from users where user = :user");

$user = "jack";

//正确

$stm->bindParam(":user",$user);

//错误

$stm->bindParam(":user","jack");

//正确

$stm->bindValue(":user",$user);

//正确

$stm->bindValue(":user","jack");

 

//所以使用bindParam是第二个参数只能用变量名,而不能用变量值,而bindValue至可以使用具体值。

?>

PDOStatement::bindColumn — 绑定一列到一个 PHP 变量。

安排一个特定的变量绑定到一个查询结果集中给定的列。每次调用 PDOStatement::fetch() 或 PDOStatement::fetchAll() 都将更新所有绑定到列的变量。

<?php

function  readData ( $dbh ) {

    $sql  =  'SELECT name, colour, calories FROM fruit' ;

    try {

        $stmt  =  $dbh -> prepare ( $sql );

        $stmt -> execute ();

 

        /*  通过列号绑定  */

        $stmt -> bindColumn ( 1 ,  $name );

        $stmt -> bindColumn ( 2 ,  $colour );

 

        /*  通过列名绑定  */

        $stmt -> bindColumn ( 'calories' ,  $cals );

 

        while ( $row  =  $stmt -> fetch ( PDO :: FETCH_BOUND )) {

            $data  =  $name  .  "\t"  .  $colour  .  "\t"  .  $cals  .  "\n" ;

            print  $data ;

        }

    }

    catch ( PDOException $e ) {

        print  $e -> getMessage ();

    }

}

readData ( $dbh );

?>
PHP 相关文章推荐
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
PHP句法规则详解 入门学习
Nov 09 PHP
探讨如何在php168_cms中提取验证码
Jun 08 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
PHP之预定义接口详解
Jul 29 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
Yii框架小部件(Widgets)用法实例详解
May 15 PHP
PDO预处理语句PDOStatement对象使用总结
Nov 20 #PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 #PHP
PHP中UNIX时间戳和日期间的转换与计算实例
Nov 19 #PHP
PHP中上传多个文件的表单设计例子
Nov 19 #PHP
PHP中使用GD库创建圆形饼图的例子
Nov 19 #PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 #PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 #PHP
You might like
php adodb介绍
2009/03/19 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
php文件上传类的分享
2017/07/06 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
python+opencv实现动态物体识别
2018/01/09 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
django中瀑布流写法实例代码
2019/10/14 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
讲座主持词
2014/03/20 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
供货协议书范本
2014/04/22 职场文书
怎样写离婚协议书
2014/09/10 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
房产公证书格式
2015/01/26 职场文书
撤诉申请怎么写
2015/05/19 职场文书
干部考核工作总结2015
2015/07/24 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android