PDOStatement::bindParam
PDOStatement::bindParam — Bindet einen Parameter an den angegebenen Variablennamen (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
Beschreibung
Syntax
bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )
Bindet eine PHP-Variable an den entsprechenden benannten oder Fragezeichen-Platzhalter in der SQL-Anweisung, die zum Vorbereiten der Anweisung verwendet wurde. Anders als bei PDOStatement::bindValue() wird die Variable als Referenz gebunden und erst zum Zeitpunkt ausgewertet, an dem PDOStatement::execute() aufgerufen wird.
Die meisten Parameter sind Eingabeparameter, d. h., der Parameter wird schreibgeschützt verwendet, um die Abfrage aufzubauen. Einige Treiber unterstützen den Aufruf gespeicherter Prozeduren, die Daten als Ausgabeparameter zurückgeben, und einige unterstützen Eingabe-/Ausgabeparameter, die sowohl Daten senden als auch aktualisierte Daten empfangen.
Parameters
Parameter
Parameterbezeichner. Bei einer vorbereiteten Anweisung mit benannten Platzhaltern wäre dies ein Parametername der Form :name. Bei einer vorbereiteten Anweisung mit Fragezeichen-Platzhaltern wäre dies die 1-indizierte Position des Parameters.
variable
Der Name der PHP-Variable, die an den Parameter der SQL-Anweisung gebunden werden soll.
data_type
Gibt den Typ des Parameters explizit unter Verwendung der PDO::PARAM_*-Konstanten an. Um einen INOUT-Parameter aus einer gespeicherten Prozedur zurückzugeben, verwenden Sie den bitweisen OR-Operator, um das Bit PDO::PARAM_INPUT_OUTPUT für den Parameter data_type zu setzen.
length
Hinweis zur Vorabzuweisung.
driverdata
Länge des Datentyps. Um anzugeben, dass ein Parameter ein OUT-Parameter aus einer gespeicherten Prozedur ist, müssen Sie diese Länge explizit festlegen.
driver_options
Rückgabewerte
Gibt bei Erfolg TRUE zurück, bei Fehlschlag FALSE.
Beispiele
Eine vorbereitete Anweisung mit benannten Platzhaltern ausführen
<?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();
?>
Eine vorbereitete Anweisung mit Fragezeichen-Platzhaltern ausführen
<?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();
?>
Eine gespeicherte Prozedur mit einem INOUT-Parameter aufrufen
<?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");
?>
Andere Erweiterungen
PHP PDO-Referenzhandbuch