//Connectez-vous d'abord à la base de données mysql
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
//Si vous souhaitez vous connecter à mssql :
//mssql:host=localhost;nomdb=testdb
//Connectez-vous à pgsql :
//pgsql:host=localhost port=5432 dbname=testdb user=bruce password=mypass
// Se connecter à odbc (DSN)
//odbc:testdb
//Même accès :
//odbc:Driver={Pilote Microsoft Access (*.mdb)};Dbq=C:\db.mdb;Uid=Admin
//Il existe aussi oracle, sqlite, db2....
//Exécuter une requête
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //Ce résultat est similaire à mysql_fetch_array. PDOStatement :: setFetchMode peut être ajusté.
}
//Aussi:
$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();
//Lire l'ensemble des enregistrements dans le tableau :
$result = $sth->fetchAll();
print_r($résultat);
//Sortir:
Tableau
(
[0] => Tableau
(
[NOM] => poire
[0] => poire
[COULEUR] => vert
[1] => vert
)
[1] => Tableau
(
[NOM] => pastèque
[0] => pastèque
[COULEUR] => rose
[1] => rose
)
)
//Insérer/supprimer/mettre à jour les données :
$count = $dbh->exec("DELETE FROM fruit WHERE color = 'red'");
//$count est le nombre d'éléments supprimés. Équivalent à mysql_affected_rows
//Vous pouvez également utiliser PDOStatement::rowCount
//J'ai oublié quelle base de données j'ai utilisée. . . .
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo "Exécuter sur MySQL ; faire quelque chose de spécifique à MySQL icin" ;
}
//Mysql_escape_string était utilisé lors de l'insertion de données, maintenant ?
print "Chaîne sans guillemets : $stringn" ;
print "Chaîne citée : " $conn->quote($string) .
//obtenir:
Chaîne sans guillemets : Nice
Chaîne entre guillemets : « Nice »
// Vous voyez, même les guillemets sont automatiquement ajoutés maintenant. . . .
//Notez que les résultats sont différents selon les bases de données, comme certaines ' => '', certaines ' => ', => \
//Pas de soucis maintenant, entièrement automatique.
// Finalement je dois le fermer
$conn = nul ;
//mais! Vous pouvez rester connecté par :
$dbh = nouveau PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO_ATTR_PERSISTENT => true));
//Très simple, n'est-ce pas ?
Pièce jointe : Une méthode d'appel spéciale très simple :
$stmt = $dbh->prepare("SELECT * FROM REGISTRY où nom = ?");
if ($stmt->execute(array($_GET['name']))) { // De quoi as-tu peur ? Devis automatique !
while ($row = $stmt->fetch()) {
print_r($ligne);
}
}
Aussi:
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
Où puis-je trouver une si bonne fonction ? php5.1 et supérieur sont dans l'extension, php5 est dans pecl, php4 n'y pensez pas, non ?