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写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
第六章 php目录与文件操作
Dec 30 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
php中注册器模式类用法实例分析
Nov 03 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
Apr 12 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 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
我的论坛源代码(九)
2006/10/09 PHP
JS 网站性能优化笔记
2011/05/24 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
CSS3 选择器 基本选择器介绍
2012/01/21 HTML / CSS
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
银行出纳岗位职责
2013/11/25 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
出纳会计岗位职责
2014/03/12 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
小学新教师个人总结
2015/02/05 职场文书
幼儿教师辞职信
2015/02/27 职场文书
中秋联欢会主持词
2015/07/04 职场文书
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript