| Installation | |
|---|---|
| ;extension=php_pdo_mysql.dll | vers ligne 583 de php.ini, activer l'extension |
| Connexion | |
|---|---|
|
$dsn = 'mysql:host=$host;dbname=$db'; try { $cnx = new PDO($dsn, $login, $pass); } catch (PDOException $e) { die("Pb : " . $e->getMessage() ); } |
cnx //connexion db //database |
| Execution | |
|---|---|
| $res = $cnx->exec($sql); | renvoit nb lignes affectés (pas sur select) |
| $res = $cnx->query($sql); | |
| $res = $cnx->prepare($sql); $res->execute(); |
|
| foreach ($cnx->query($sql) as $row) echo $row['champ']; |
methode rapide si peu de données |
| Exception | |
|---|---|
| if($res) | Pour éviter les requètes vides |
| Traitement | |
|---|---|
| $res->columnCount() | nb de champs retournés dans un select |
| $rows = $res->fetchAll(); foreach ($rows as $row) echo $row['champ']; |
récupère tout dans un tableau |
|
while ( $row = $res->fetch() ) echo $row[0].$row['champ']; |
PDO::FETCH_BOTH par défaut |
|
while ($row = $res->fetch(PDO::FETCH_ASSOC)) echo $row['champ']; |
PDO::FETCH_ASSOC //champ en indice |
| while ($row = $res->fetch (PDO::FETCH_OBJ)) echo $row->champx.$row->champy; |
PDO::FETCH_OBJ |
|
while ($row = $res->fetch(PDO::FETCH_NUM)) echo $row[0]; |
PDO::FETCH_NUM //numéro champ en indice |
|
$res = $sth->fetch(
PDO::FETCH_NUM ) foreach($res as $val) echo $val; |
traite 1 ligne |
| Requetes préparées (optimisation mysql) | |
|---|---|
| $sql= "INSERT INTO table SET login = :login, pass= :pass"; $stmt = $dbh->prepare($sql); $stmt->execute(array(':login' => 'dean',:pass' => 'monPass')); |
on execute autant de fois qu'il y a d'insert |
| $sql= "INSERT INTO table SET login = :login, pass= :pass"; $stmt = $dbh->prepare($sql); $stmt->bindParam(':login', $login); $stmt->bindParam(':pass', $pass); $stmt->execute() |
idem avec utilisation de variab |
| Résumé | |
|---|---|
| $res = $cnx->exec($sql); | insert/update/delete renvoi nb affecté |
| $res = $cnx->prepare($sql); $res->execute(); |
insert/update/delete |
| foreach ($cnx->query($sql) as $row) echo $row['champ']; | select, méthode rapide |
|
$res = $cnx->query($sql); $res->columnCount() |
select nb |
|
$res = $cnx->query($sql); $tabUnique = $res->fetch(PDO::FETCH_NUM); $unique=$tabUnique [0]; |
select unique |
| $res = $cnx->query($sql); while ($row = $res->fetch(PDO::FETCH_ASSOC)) echo $row['champ']; |
select |
|
$res = $cnx->query($sql); $rows = $res->fetchAll(); foreach ($rows as $row) echo $row['champ']; |
select, résultat dans un tableau |
| Temp | |
|---|---|
| xx | xx |
| xx | xx |