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 相关文章推荐
PHP session有效期问题
Apr 26 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
php Memcache 中实现消息队列
Nov 24 PHP
thinkPHP的Html模板标签使用方法
Nov 13 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
php中HTTP_REFERER函数用法实例
Nov 21 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
php+mysql实现无限级分类
Nov 11 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP常用处理静态操作类
2015/04/03 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
用jQuery获取table中行id和td值的实现代码
2016/05/19 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
python框架中flask知识点总结
2018/08/17 Python
Python骚操作之动态定义函数
2019/03/26 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
中职应届生会计求职信
2013/10/23 职场文书
音乐教学反思
2014/02/02 职场文书
黄河象教学反思
2014/02/10 职场文书
求职信标题怎么写
2014/05/26 职场文书
购房个人委托书范本
2014/10/11 职场文书
租车协议书
2015/01/27 职场文书
借条格式范本
2015/05/25 职场文书
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫