PHP PDOStatement::bindParam讲解


Posted in PHP onJanuary 30, 2019

PDOStatement::bindParam

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 ]]] )

绑定一个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");
?>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
Zend公司全球首推PHP认证
Oct 09 PHP
PHP 读取文件的正确方法
Apr 29 PHP
php简单提示框alert封装函数
Aug 08 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
Dec 08 PHP
PHP中的函数声明与使用详解
May 27 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 #PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 #PHP
PDO::setAttribute讲解
Jan 29 #PHP
PDO::rollBack讲解
Jan 29 #PHP
PDO::quote讲解
Jan 29 #PHP
PDO::query讲解
Jan 29 #PHP
PDO::prepare讲解
Jan 29 #PHP
You might like
初次接触php抽象工厂模式(Elgg)
2010/03/21 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
微信小程序实现上拉加载功能
2019/11/20 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python如何实现excel数据添加到mongodb
2015/07/30 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
学生信息管理系统python版
2018/10/17 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
详解python对象之间的交互
2020/09/29 Python
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
医学毕业生自我鉴定
2013/10/30 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
党校学习党性分析材料
2014/12/19 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle