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 sprintf() 函数的应用(定义和用法)
Jun 29 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
PHP数组去重比较快的实现方式
Jan 19 PHP
php实现图片上传、剪切功能
May 07 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
php分页查询的简单实现代码
Mar 14 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
解决Laravel使用验证时跳转到首页的问题
Nov 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
2006/12/14 PHP
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
初步讲解Python中的元组概念
2015/05/21 Python
python虚拟环境完美部署教程
2019/08/06 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
python代码实现猜拳小游戏
2020/11/30 Python
pycharm + django跨域无提示的解决方法
2020/12/06 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
scrapy-splash简单使用详解
2021/02/21 Python
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
大学毕业生自荐书怎么写?
2014/01/06 职场文书
双十佳事迹材料
2014/01/29 职场文书
学习两会精神心得范文
2014/03/17 职场文书
出差报告格式模板
2014/11/06 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
同意报考公务员证明
2015/06/17 职场文书
监护人证明
2015/06/19 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python