PHP: PDOStatement->bindValue() - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

PDOStatement->closeCursor() PDOStatement->bindParam()

Last updated: Sat, 27 Jan 2007

view this page in

# PDOStatement->bindValue()

(no version information, might be only in CVS)

PDOStatement->bindValue() -- Binds a value to a parameter

## Описание

class PDOStatement {
bool bindValue ( mixed parameter, mixed value [, int data_type] )
}

Binds a value to a corresponding named or question mark placeholder in the SQL statement that was use to prepare the statement.

## Список параметров

`parameter`

  Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form `:name`. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

`value`

  The value to bind to the parameter.

`data_type`

  Explicit data type for the parameter using the PDO::PARAM_* constants.

## Возвращаемые значения

Возвращает `TRUE` в случае успешного завершения или `FALSE` в случае возникновения ошибки.

## Примеры

Пример 1. Execute a prepared statement with named placeholders

`<?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->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>`

Пример 2. Execute a prepared statement with question mark placeholders

`<?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->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();
?>`

## Смотрите также

PDO->prepare()
PDOStatement->execute()
PDOStatement->bindParam()

add a note User Contributed Notes
PDOStatement->bindValue()
ts//tpdada//art//pl
15-Dec-2006 06:34
`For bind whole array at once
<?php
function PDOBindArray(&$poStatement, &$paArray){
foreach ($paArray as $k=>$v){
@$poStatement->bindValue(':'.$k,$v);
} // foreach
} // function
// example
$stmt = $dbh->prepare("INSERT INTO tExample (id,value) VALUES (:id,:value)");
$taValues = array(
'id' => '1',
'value' => '2'
); // array
PDOBindArray($stmt,$taValues);
$stmt->execute();
?>`
Chris L
26-May-2006 03:43
`I'm not sure if this is intentional or not, but you can't use a placeholder more than once. I assumed (wrongly) that bindValue() would replace ALL instances of a given placeholder with a value. For example:
<?php
// $db is a PDO object
$stmt = $db->prepare
('
insert into
TableA
(
ID,
Name,
Foo
)
select
null,
:Name,
:Foo
from
TableA
where
Foo = :Foo
');
$stmt->bindValue(':Name', 'john doe');
$stmt->bindValue(':Foo', 'foo');
$stmt->execute();
?>
This apparently won't work - you must have separate :SelectFoo and :WhereFoo. I'm using PHP 5.0.4, MySQL 5.0.14, and PDO version 1.0.2.`
add a note
PDOStatement->closeCursor() PDOStatement->bindParam()

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST