PDOStatement::bindColumn – Eine Spalte an eine PHP-Variable binden (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDOStatement::bindColumn ( gemischt $column , gemischt &$param [, int $type [, int $maxlen [, gemischt $driverdata ]]] )
Ordnet an, dass eine bestimmte Variable an eine bestimmte Spalte in einem Abfrageergebnissatz gebunden wird. Jeder Aufruf von PDOStatement::fetch() oder PDOStatement::fetchAll() aktualisiert alle an die Spalte gebundenen Variablen.
Hinweis: PDO-Informationen zu Spalten sind vor der Ausführung der Anweisung nicht immer verfügbar. Tragbare Anwendungen sollten diese Funktion (Methode) nach PDOStatement::execute() aufrufen. Wenn Sie jedoch den PgSQL-Treiber verwenden, muss die Anwendung diese Methode aufrufen, bevor sie PDOStatement::execute() aufruft, um eine LOB-Spalte als Stream binden zu können. Andernfalls wird die OID des großen Objekts als Ganzzahl zurückgegeben.
Spaltennummer (indiziert ab 1) oder Spaltenname im Spaltenergebnissatz . Beachten Sie bei der Verwendung von Spaltennamen, dass die Namen mit der Groß-/Kleinschreibung der vom Treiber zurückgegebenen Spaltennamen übereinstimmen müssen.
param Der PHP-Variablenname, der an die Spalte gebunden wird
typeDer Datentyp des durch PDO::PARAM_*-Konstanten angegebenen Parameters.
Maxlen- Vorbelegungshinweis.
Optionaler Parameter des Treiberdatentreibers .
Gibt TRUE bei Erfolg oder FALSE bei Fehler zurück.
Das Binden von Spalten in einem Ergebnissatz an PHP-Variablen ist eine effiziente Möglichkeit, die in jeder Zeile enthaltenen Daten sofort in Ihrer Anwendung verfügbar zu machen. Das folgende Beispiel zeigt, wie PDO Spalten mit verschiedenen Optionen und Standardwerten bindet und abruft.
<?phpfunction readData($dbh) { $sql = 'SELECT Name, Farbe, Kalorien FROM Fruit'; try { $stmt = $dbh->prepare($stmt->execute(); /* Spalten übergeben Zahlenbindung*/ $stmt->bindColumn(1, $name); $stmt->bindColumn(2, $color); Bindung nach Spaltenname*/ $stmt->bindColumn('calories', $cals); while ($row = $stmt->fetch(PDO::FETCH_BOUND)) { $data = $name color . "t" . "n"; print $data } } Catch (PDOException $e) { print $e->getMessage(); }}readData($dbh);?>
Die obige Routine gibt Folgendes aus:
Apfelrot 150Bananengelb 175Kiwigrün 75Orangeorange 150Mangorot 200Erdbeerrot 25