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 相关文章推荐
MySQL数据源表结构图示
Jun 05 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
php开发过程中关于继承的使用方法分享
Jun 17 PHP
php 字符串替换的方法
Jan 10 PHP
Zend Framework页面缓存实例
Jun 25 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 PHP
初识ThinkPHP控制器
Apr 07 PHP
phpmyadmin下载、安装、配置教程
May 16 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
is_file和file_exists效率比较
Mar 14 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
两个开源的Php输出Excel文件类
2010/02/08 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
用javascript控制iframe滚动的代码
2007/04/10 Javascript
jquery 经典动画菜单效果代码
2010/01/26 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
浅析使用Python搭建http服务器
2019/10/27 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
华为C++笔试题
2014/08/05 面试题
广州品高软件.net笔面试题目
2012/04/18 面试题
成品仓管员工作职责
2013/12/29 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
python本地文件服务器实例教程
2021/05/02 Python
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android
Python中super().__init__()测试以及理解
2021/12/06 Python