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 相关文章推荐
一个简单实现多条件查询的例子
Oct 09 PHP
PHP静态类
Nov 25 PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 PHP
php实现过滤表单提交中html标签的方法
Oct 17 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php使用类继承解决代码重复的问题
Feb 11 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
Laravel 实现密码重置功能
Feb 23 PHP
实例解析php的数据类型
Oct 24 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 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中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
$.format,jquery.format 使用说明
2011/07/13 Javascript
JavaScript函数详解
2014/11/17 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
JavaScript中的冒泡排序法
2016/08/03 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
Python算法应用实战之栈详解
2017/02/04 Python
python验证码识别的示例代码
2017/09/21 Python
Python进程间通信Queue实例解析
2018/01/25 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
开学典礼感言
2014/02/16 职场文书
岗位职责风险点
2014/03/12 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2014年人事部工作总结
2014/12/03 职场文书
房产公证书
2015/01/23 职场文书
蓬莱阁导游词
2015/02/04 职场文书
同学会演讲稿
2019/04/02 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL