PDOStatement::execute – eine vorbereitete Anweisung ausführen (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDOStatement::execute ([ array $input_parameters ] )
Führen Sie vorbereitete Anweisungen aus. Wenn die vorbereitete Anweisung Parametermarkierungen enthält, müssen Sie eine der folgenden Optionen auswählen:
Rufen Sie PDOStatement::bindParam() auf, um PHP-Variablen an Parametermarkierungen zu binden: Übergeben Sie gegebenenfalls Eingabewerte und erhalten Sie Ausgabewerte, indem Sie Variablen zuordnen, die an Parametermarkierungen gebunden sind
oder übergeben Sie ein Array nur als Eingabeparameterwerte
Eingabeparameter
Ein Array mit so vielen Elementen wie die Parameter, die an die auszuführende SQL-Anweisung gebunden sind. Alle Werte werden als PDO::PARAM_STR behandelt.
Sie können nicht mehrere Werte an einen einzelnen Parameter binden; Sie können beispielsweise nicht zwei Werte an einen einzelnen benannten Parameter in einer IN()-Klausel binden.
Die gebundenen Werte dürfen die angegebene Anzahl nicht überschreiten. Wenn in input_parameters mehr Schlüsselnamen vorhanden sind, als in der vorbereiteten SQL-Anweisung PDO::prepare() angegeben sind, schlägt diese Anweisung mit einem Fehler fehl.
Gibt TRUE bei Erfolg oder FALSE bei Fehler zurück.
<?php/* Führen Sie eine vorbereitete Anweisung aus, indem Sie PHP-Variablen binden*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT name, color,calories FROM Fruit WHEREcalories < :calories AND color = :colour');$sth->bindParam(':calories', $calories, PDO::PARAM_INT);$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* Führen Sie eine vorbereitete Anweisung aus, indem Sie ein Array übergeben, das die eingefügten Werte enthält*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT name, colour,calories FROM Fruit WHERE Kalorien < :Kalorien UND Farbe = :Farbe');$sth->execute(array(':Kalorien' => $Kalorien, ':Farbe' => $Farbe));?>
<?php/* Führen Sie eine vorbereitete Anweisung aus, indem Sie ein Array eingefügter Werte übergeben*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT name, colour,calories FROM Fruit WHEREcalories < ? AND color = ?');$sth->execute(array($calories, $color));?>
<?php/* Führen Sie eine vorbereitete Anweisung aus, indem Sie PHP-Variablen binden color = ?');$sth->bindParam(1, $calories, PDO::PARAM_INT);$sth->bindParam(2, $color, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* Führen Sie eine vorbereitete Anweisung aus, die eine IN-Klausel enthält, und verwenden Sie dabei die Werte eines Arrays. */$params = array(1, 21, 63, 171);/* Erstellen Sie einen Platzhalter, der mit der gleichen Anzahl von Parametern gefüllt ist */$place_holders = implode(',', array_fill(0, count($params), '?'));/* für $params Für jeden Wert im Array enthält die vorzubereitende Anweisung genügend unbenannte Platzhalter. Wenn die Anweisung ausgeführt wird, werden die Werte im Array $params an die Platzhalter in der vorbereiteten Anweisung gebunden. Dies unterscheidet sich von der Verwendung von PDOStatement::bindParam(), da hierfür eine Referenzvariable erforderlich ist. PDOStatement::execute() fungiert nur als Alternative zur Bindung nach Wert. */$sth = $dbh->prepare("SELECT id, name FROM communications WHERE id IN ($place_holders)");$sth->execute($params);?>