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项目开发中最常用的自定义函数整理
Dec 02 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
Jul 07 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
PHP处理JSON字符串key缺少双引号的解决方法
Sep 16 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
php中static和const关键字用法分析
Dec 07 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 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+mysql)
2007/11/23 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
Python实现多进程的四种方式
2019/02/22 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
30岁生日感言
2014/01/25 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL