// Stellen Sie zunächst eine Verbindung zur MySQL-Datenbank her
$dbh = neues PDO('mysql:host=localhost;dbname=test', $user, $pass);
//Wenn Sie eine Verbindung zu MSSQL herstellen möchten:
//mssql:host=localhost;dbname=testdb
//Mit pgsql verbinden:
//pgsql:host=localhost port=5432 dbname=testdb user=bruce passwort=mypass
//Mit odbc(DSN) verbinden
//odbc:testdb
//Sogar Zugriff:
//odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\db.mdb;Uid=Admin
//Es gibt auch Oracle, SQLite, DB2...
//Führen Sie eine Abfrage aus
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //Dieses Ergebnis ähnelt mysql_fetch_array. PDOStatement::setFetchMode kann angepasst werden.
}
//Auch:
$sth = $dbh->prepare("NAME, Farbe AUS Frucht AUSWÄHLEN");
$sth->execute();
//Den gesamten Datensatz in das Array einlesen:
$result = $sth->fetchAll();
print_r($result);
//Ausgabe:
Array
(
[0] => Array
(
[NAME] => Birne
[0] => Birne
[FARBE] => grün
[1] => grün
)
[1] => Array
(
[NAME] => Wassermelone
[0] => Wassermelone
[FARBE] => rosa
[1] => rosa
)
)
//Daten einfügen/löschen/aktualisieren:
$count = $dbh->exec("DELETE FROM Fruit WHERE color = 'red'");
//$count ist die Anzahl der gelöschten Elemente. Entspricht mysql_affected_rows
//Sie können auch PDOStatement::rowCount verwenden
//Ich habe vergessen, welche Datenbank ich verwendet habe. . . .
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo „Läuft auf MySQL; mache hier etwas MySQL-spezifischesn“;
}
//Mysql_escape_string wurde früher beim Einfügen von Daten verwendet, jetzt?
print „Zeichenfolge ohne Anführungszeichen: $stringn“;
print "Zitierte Zeichenfolge: " $conn->quote($string) "n";
//erhalten:
Zeichenfolge ohne Anführungszeichen: Schön
Zitierte Zeichenfolge: „Nice“
//Sehen Sie, sogar die Anführungszeichen werden jetzt automatisch hinzugefügt. . . .
//Beachten Sie, dass die Ergebnisse in verschiedenen Datenbanken unterschiedlich sind, z. B. einige ' => '', einige ' => ', => \
//Keine Sorge jetzt, vollautomatisch.
//Endlich muss ich es schließen
$conn = null;
//Aber! Sie können in Verbindung bleiben, indem Sie:
$dbh = neues PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO_ATTR_PERSISTENT => true));
//Sehr einfach, nicht wahr?
Anhang: Eine sehr einfache spezielle Aufrufmethode:
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) { //Wovor hast du Angst? Automatisches Angebot!
while ($row = $stmt->fetch()) {
print_r($row);
}
}
Auch:
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
Wo finde ich so eine gute Funktion? php5.1 und höher sind in der Erweiterung, php5 ist in pecl, php4? Denken Sie nicht darüber nach, nein.