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脚本数据库功能详解(中)
Oct 09 PHP
PHP session有效期问题
Apr 26 PHP
UCenter Home二次开发指南
May 28 PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 PHP
浅析php变量修饰符static的使用
Jun 28 PHP
php实现微信公众平台账号自定义菜单类
Dec 02 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
常用PHP数组排序函数归纳
Aug 08 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
django 多数据库配置教程
2018/05/30 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
基层党组织公开承诺书
2014/03/28 职场文书
销售目标责任书
2014/07/23 职场文书
表扬稿范文
2015/01/17 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
Pytest中skip和skipif的具体使用方法
2021/06/30 Python
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL