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 相关文章推荐
NOT NULL 和NULL
Jan 15 PHP
mysql时区问题
Mar 26 PHP
坏狼的PHP学习教程之第1天
Jun 15 PHP
php中将网址转换为超链接的函数
Sep 02 PHP
php购物车实现代码
Oct 10 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
php微信公众平台开发之获取用户基本信息
Aug 17 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
Jul 10 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实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php绘制一个扇形的方法
2015/01/24 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
python Tornado框架的使用示例
2020/10/19 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
招商经理岗位职责
2013/11/16 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
运动会班级口号
2014/06/09 职场文书
节能减耗标语
2014/06/21 职场文书
思想政治表现评语
2015/01/04 职场文书
2016年端午节寄语
2015/12/04 职场文书