PDOStatement::execute
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDOStatement::execute — Führt ein Prepared Statement aus
Beschreibung
$input_parameters
] ) : boolFührt das Prepared Statement aus. Falls das Prepared Statement Parameter-Marker enthält, muss entweder:
PDOStatement::bindParam() und/oder PDOStatement::bindValue() aufgerufen werden, um Variablen beziehungsweise Werte an die Parameter-Marker zu binden. Gebundene Variablen geben ihren Wert als Eingabe und ihnen wird, falls zutreffend, der Ausgabewert der zugehörigen Parameter-Marker zugewiesen.
-
oder ein Array mit Nur-Eingabe-Parameterwerten übergeben werden
Parameter-Liste
-
input_parameters
-
Ein Array mit Werten in gleicher Anzahl wie der Anzahl gebundener Parameter im auszuführenden SQL-Statement. Alle Werte werden als
PDO::PARAM_STR
behandelt.Für einen einzelnen Paramter können nicht mehrere Werte zugeordnet werden; zum Beispiel ist es nicht gestattet, zwei Werte an einen einzelnen benannten Parameter in einer IN()-Klausel zu binden.
Mehr Werte als festgelegt zuzuordnen ist nicht möglich; wenn mehr Parameter in den
input_parameters
übergeben werden, als in PDO::prepare() definiert wurden, wird das Statement fehlschlagen und ein Fehler wird ausgegeben.
Changelog
Version | Beschreibung |
---|---|
5.2.0 |
Die Parameternamen der input_parameters müssen mit den im
SQL definierten übereinstimmen. Vor PHP 5.2.0 wurde das stillschweigend ignoriert.
|
Beispiele
Beispiel #1 Ein Prepared Statement mit einer zugewiesener Variable und Wert ausführen
<?php
/* Ein Prepared Statement ausführen, in dem Variable und Wert zugewiesen werden */
$calories = 150;
$colour = 'gre';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour LIKE :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', "%{$colour}%");
$sth->execute();
?>
Beispiel #2 Ein Prepared Statement mit einem Array an Eingabewerten (benannte Parameter) ausführen
<?php
/* Ein Prepared Statement ausführen, indem ein Array an Eingabewerten übergeben wird */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>
Beispiel #3 Ein Prepared Statement mit einem Array an Eingabewerten (Platzhalter) ausführen
<?php
/* Ein Prepared Statement ausführen, indem ein Array an Eingabewerten übergeben wird */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>
Beispiel #4 Ein Prepared Statement mit Fragezeichen-Platzhaltern ausführen
<?php
/* Ein Prepared Statement durch das zuordnen von PHP-Variablen ausführen*/
$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();
?>
Beispiel #5 Ein Prepared Statement mit einem Array für eine IN-Klausel ausführen
<?php
/* Führt ein Prepared Statement mit einem Array für eine IN-Klausel aus */
$params = array(1, 21, 63, 171);
/* Erstelle einen String für die Parameter-Platzhalter gefüllt bis zur Anzahl Parameter */
$place_holders = implode(',', array_fill(0, count($params), '?'));
/*
Das bereitet das Statement mit genügend unbenannten Platzhaltern
für jeden Wert in unserem $params-Array vor. Die Werte aus dem
$params-Array werden dann an die Platzhalter im Prepared Statement
gebunden, wenn das Statement ausgeführt wird. Das ist nicht das
gleiche wie PDOStatement::bindParam() zu verwenden, weil dies eine
Referenz zur Variable benötigt. PDOStatement::execute() ordnet
hingegen nur die Werte zu.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>
Anmerkungen
Hinweis:
Manche Treiber verlangen die Ausführung von close cursor, bevor das nächste Statement ausgeführt wird.
Siehe auch
- PDO::prepare() - Prepares a statement for execution and returns a statement object
- PDOStatement::bindParam() - Binds a parameter to the specified variable name
- PDOStatement::fetch() - Fetches the next row from a result set
- PDOStatement::fetchAll() - Returns an array containing all of the result set rows
- PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-pdostatement.execute.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.