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数组实例总结与说明
Aug 23 PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
PHP数据库连接mysql与mysqli对比分析
Jan 04 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
Jul 20 PHP
PHP钩子实现方法解析
May 21 PHP
PHP设计模式(观察者模式)
Jul 07 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
VFP与其他应用程序的集成
2006/10/09 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
关于php中一些字符串总结
2016/05/05 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
JavaScript 密码强度判断代码
2009/09/05 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
python连接mongodb密码认证实例
2018/10/16 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
python中update的基本使用方法详解
2019/07/17 Python
python如何统计代码运行的时长
2019/07/24 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
python中的测试框架
2020/11/13 Python
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
经济担保书范文
2014/04/02 职场文书
实习生岗位职责
2014/04/12 职场文书
个人求职信范文
2014/05/24 职场文书
英语教育专业自荐信
2014/05/29 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书