PDOStatement::bindParam()
PDOStatement::bindParam
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::bindParam — Binder en parameter till ett specifikt variabelnamn.
Beskrivning
public PDOStatement::bindParam(
string|int $param, mixed &$var, int $type = PDO::PARAM_STR, int $maxLength = 0, mixed $driverOptions = null
): bool
Binder en PHP-variabel till en motsvarande namngiven eller frågetecken-platshållare i det förberedda SQL-uttrycket. Till skillnad från PDOStatement::bindValue() binds variabeln som en referens och kommer endast att utvärderas när PDOStatement::execute() anropas.
De flesta parametrar är inparametrar som används i läs-läge för att bygga upp frågan. Vissa drivrutiner stödjer även utparametrar för lagrade procedurer.
Parametrar
- param
- Identifieraren för parametern. För ett förberett uttryck med namngivna platshållare kommer detta att vara ett parameter-namn i formen :name. För ett förberett uttryck med frågetecken-platshållare är detta positionen (1-indexerat) för parametern.
- var
- Namnet på PHP-variabeln som ska bindas till parametern i SQL-uttrycket.
- type
- Datatyp för parametern, specificerad med PDO::PARAM_* konstanter. För INOUT-parametrar från lagrade procedurer, använd bitvis OR för att sätta PDO::PARAM_INPUT_OUTPUT.
- maxLength
- Längden på datatypen. Krävs för OUT-parametrar från lagrade procedurer. Relevans endast vid användning av PDO::PARAM_INPUT_OUTPUT.
- driverOptions
- Drivrutinsspecifika alternativ (valfritt).
Returvärden
Returnerar true vid framgång eller false vid misslyckande.
Fel/Uppslag
- Utlöser ett fel på nivån E_WARNING om attributet PDO::ATTR_ERRMODE är inställt på PDO::ERRMODE_WARNING.
- Kastar ett PDOException-fel om attributet PDO::ATTR_ERRMODE är inställt på PDO::ERRMODE_EXCEPTION.
Exempel
Exempel 1: Exekvera ett förberett uttalande med namngivna platshållare
<?php
/* Exekvera ett förberett uttalande genom att binda PHP-variabler */
$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);
/* Namn kan också förses med kolon ":" (valfritt) */
$sth->bindParam(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>
Exempel 2: Exekvera ett förberett uttalande med frågetecken-platshållare
<?php
/* Exekvera ett förberett uttalande genom att binda PHP-variabler */
$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);
$sth->execute();
?>
Exempel 3: Anropa en lagrad procedur med en INOUT-parameter
<?php
/* Anropa en lagrad procedur med en 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 "Efter pureeing fruit, färgen är: $colour";
?>
Se även
- PDO::prepare() - Förbereder ett uttalande för exekvering och returnerar ett statement-objekt.
- PDOStatement::execute() - Exekverar ett förberett uttalande.
- PDOStatement::bindValue() - Binder ett värde till en parameter.
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/pdostatement.bindparam.php
PHP
Funktioner
Funktionsreferens
Databas-tillägg
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Huddinge Datorhjälp som har sponsrat Linux.se med webbhotell.