PHP PDOStatement::bindParam讲解

作者:php参考手册 时间:2023-06-05 05:47:28 

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,pdostatement,bindparam
0
投稿

猜你喜欢

  • Python 必须了解的5种高级特征

    2023-09-27 23:00:16
  • python 实现docx与doc文件的互相转换

    2022-01-19 06:45:58
  • Python 调用 Outlook 发送邮件过程解析

    2023-11-17 19:34:57
  • python中list.copy方法用法详解

    2023-09-16 11:48:30
  • python中最小二乘法详细讲解

    2022-02-12 22:33:07
  • 六个Python编程最受用的内置函数使用详解

    2022-06-12 22:26:01
  • PyTorch 解决Dataset和Dataloader遇到的问题

    2023-10-14 04:37:50
  • xmlHttp msxml3.dll 错误 '800c0008' 解决办法

    2008-08-31 20:44:00
  • Python文本文件的合并操作方法代码实例

    2022-12-07 21:52:54
  • python实现双人版坦克大战游戏

    2022-08-30 06:52:57
  • 检测你的SQL Server是否有特洛伊木马

    2009-02-05 15:58:00
  • Python 稀疏矩阵-sparse 存储和转换

    2022-05-29 03:13:22
  • 在MySQL中使用XML数据—数据格式化

    2009-12-29 10:26:00
  • 纯python实现机器学习之kNN算法示例

    2021-05-02 22:57:17
  • pandas中的Timestamp只保留日期不显示时间

    2023-12-24 18:45:06
  • Python实现压缩文件夹与解压缩zip文件的方法

    2023-07-31 20:43:09
  • 微信小程序自定义支持图片的弹窗

    2024-04-16 10:31:25
  • JavaScript数值千分位格式化的两种简单实现方法

    2023-08-31 22:59:43
  • mysql服务启动却连接不上的解决方法

    2024-01-24 23:45:13
  • 如何用Matplotlib 画三维图的示例代码

    2023-03-02 15:16:08
  • asp之家 网络编程 m.aspxhome.com