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日期时间函数的高级应用技巧
May 16 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
php获取字段名示例分享
Mar 03 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
PHP实现搜索相似图片
Sep 22 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 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 header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
js chrome浏览器判断代码
2010/03/28 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
在Python的Django框架中创建语言文件
2015/07/27 Python
python基础知识小结之集合
2015/11/25 Python
python中的计时器timeit的使用方法
2017/10/20 Python
python实现TF-IDF算法解析
2018/01/02 Python
python hook监听事件详解
2018/10/25 Python
python协程之动态添加任务的方法
2019/02/19 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
Django更新models数据库结构步骤
2020/04/01 Python
python语言中有算法吗
2020/06/16 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
警察正风肃纪剖析材料
2014/10/16 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
公司股东出资证明书
2014/11/01 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
德劲DE1108畅想
2021/04/22 无线电