首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PDOStatement::bindParam

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement :: bindParam - 将参数绑定到指定的变量名称

描述

代码语言:javascript
复制
public 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参数,请使用按位或运算符为参数设置PDO :: PARAM_INPUT_OUTPUT位data_type

length

数据类型的长度。要指示参数是存储过程中的OUT参数,则必须明确设置长度。

driver_options

返回值

成功时返回TRUE或失败时返回FALSE

示例

示例#1使用命名占位符执行准备好的语句

代码语言:javascript
复制
<?php
/* Execute a prepared statement by binding PHP variables */
$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();
?>

示例#2使用问号占位符执行准备好的语句

代码语言:javascript
复制
<?php
/* Execute a prepared statement by binding PHP variables */
$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();
?>

示例#3使用INOUT参数调用存储过程

代码语言:javascript
复制
<?php
/* Call a stored procedure with an INOUT parameter */
$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");
?>

扩展内容

  • PDO :: prepare() - 准备执行语句并返回一个语句对象
  • PDOStatement :: execute() - 执行准备好的语句
  • PDOStatement :: bindValue() - 将值绑定到参数

←PDOStatement :: bindColumn

PDOStatement::bindValue →

扫码关注腾讯云开发者

领取腾讯云代金券