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 相关文章推荐
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
php 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
TMDPHP 模板引擎使用教程
Mar 13 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
php图片缩放实现方法
Feb 20 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
php 判断IP为有效IP地址的方法
Jan 28 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 PHP
PHP7 标准库修改
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
php下将XML转换为数组
2010/01/01 PHP
url decode problem 解决方法
2011/12/26 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
Python数据类型详解(二)列表
2016/05/08 Python
python中defaultdict的用法详解
2017/06/07 Python
分析Python读取文件时的路径问题
2018/02/11 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
企业为何需要商业计划书
2013/12/26 职场文书
简历自我评价模版
2014/01/31 职场文书
部队万能检讨书
2014/02/20 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
JavaScript流程控制(分支)
2021/12/06 Javascript