PDOStatement::bindParam — 绑定一个参数到指定的变量名(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)


说明

语法

bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )高佣联盟 www.cgewang.com

绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。 不同于 PDOStatement::bindValue() ,此变量作为引用被绑定,并只在 PDOStatement::execute() 被调用的时候才取其值。

大多数参数是输入参数,即,参数以只读的方式用来建立查询。一些驱动支持调用存储过程并作为输出参数返回数据,一些支持作为输入/输出参数,既发送数据又接收更新后的数据。


参数

parameter
参数标识符。对于使用命名占位符的预处理语句,应是类似 :name 形式的参数名。对于使用问号占位符的预处理语句,应是以1开始索引的参数位置。

variable
绑定到 SQL 语句参数的 PHP 变量名。

data_type
使用 PDO::PARAM_* 常量明确地指定参数的类型。要从一个存储过程中返回一个 INOUT 参数,需要为 data_type 参数使用按位或操作符去设置 PDO::PARAM_INPUT_OUTPUT 位。

length
预分配提示。

driverdata
数据类型的长度。为表明参数是一个存储过程的 OUT 参数,必须明确地设置此长度。

driver_options


返回值

成功时返回 TRUE, 或者在失败时返回 FALSE。


实例

执行一条使用命名占位符的预处理语句

<?php
/* 通过绑定的 PHP 变量执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

执行一条使用问号占位符的预处理语句

<?php
/* 通过绑定的 PHP 变量执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

使用 INOUT 参数调用一个存储过程

<?php
/* 使用 INOUT 参数调用一个存储过程 */
$colour = 'red';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $colour, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("After pureeing fruit, the colour is: $colour");
?>

最新文章

  1. 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)
  2. [No0000AB]用Visual Studio 2015在 WIN10 64bit 上编译7-zip (32 bit)
  3. Physics(物理系统)
  4. win8下始终以管理员身份运行vs2012的解决办法
  5. jquery给div,Span, a ,button, radio 赋值取值
  6. ArcGIS Runtime for Android开发教程V2.0(1)基本概念
  7. Objective-C中的runtime的原理和用法
  8. uva live 6190 Beautiful Spacing (二分法+dp试 基于优化的独特性质)
  9. 跟着刚哥梳理java知识点——流程控制(六)
  10. 线程基础(CLR via C#)
  11. 聊聊 Spring Boot 2.x 那些事儿
  12. Java三种方式实现栈和队列
  13. QQ项目
  14. shell笔记-算术运算
  15. 【Ubuntu】任务管理器loadruner
  16. webstorm添加调试nodejs
  17. 找你妹+ipad+wifi,回顾那年的经典游戏
  18. POJ 2395 Out of Hay(求最小生成树的最长边+kruskal)
  19. drupal读取mysql的longblob字段
  20. HTML+css3 图片放大效果

热门文章

  1. 每日一题 - 剑指 Offer 38. 字符串的排列
  2. h5移动端实现图片文件上传
  3. web3.js支持SimpleChain跨链调用
  4. 奇怪DP之步步为零
  5. HDU - 5963 朋友(思维题)
  6. 手把手教你玩转Git
  7. 数组中出现次数超过一半的数字(剑指offer-28)
  8. 结合实际需求,在webapi内利用WebSocket建立单向的消息推送平台,让A页面和服务端建立WebSocket连接,让其他页面可以及时给A页面推送消息
  9. 什么?你还不会通过纯js提交表单?
  10. dva的简介