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 相关文章推荐
smarty实例教程
Nov 19 PHP
php5新改动之短标记启用方法
Sep 11 PHP
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
php cli 小技巧
Jun 03 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
PHP会话处理的10个函数
Aug 11 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
thinkphp分页实现效果
Oct 13 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
基于PHP实现发微博动态代码实例
Dec 11 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
再说下636单管机
2021/03/02 无线电
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python中stdout输出不缓存的设置方法
2014/05/29 Python
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
python获取当前日期和时间的方法
2015/04/30 Python
Python中标准模块importlib详解
2017/04/16 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
pytorch 修改预训练model实例
2020/01/18 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
高中同学会活动方案
2014/08/14 职场文书
无刑事犯罪记录证明
2014/09/18 职场文书
家长通知书家长意见
2014/12/30 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
Python 全局空间和局部空间
2022/04/06 Python