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 破解防盗链图片函数
Dec 09 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
深入array multisort排序原理的详解
Jun 18 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
PHP Session机制简介及用法
Aug 19 PHP
全面解读PHP的Yii框架中的日志功能
Mar 17 PHP
PHP封装的非对称加密RSA算法示例
May 28 PHP
php提供实现反射的方法和实例代码
Sep 17 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 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中的session安全吗?
2016/01/22 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
董事长秘书岗位职责
2013/11/29 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
在职证明格式样本
2015/06/15 职场文书
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python