Plusieurs requêtes sur le même script
Bonjour
Mes scripts étant devenus âgés ceux-ci ont besoin d'être réactualisés. Mon idée passer aux PDO. Après avoir lu plusieurs documents, je me suis lancé. Mon idée mettre les requêtes INSERT et UPDATE sur le même script. J'ai commencé par refaire le script connexion à la BDD
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?php
if ( ! function_exists('db_connexion')) {
function db_connexion() {
static $pdo;
if ( ! ($pdo instanceof PDO)) {
try {
$pdo = new PDO('mysql:host=monhost;dbname=name;charset=utf8','base', 'passwort', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false
]);
}
catch (PDOException $e) {
throw new InvalidArgumentException('Erreur connexion à la base de données : '.$e->getMessage());
exit;
}
}
return $pdo;
}
}
return db_connexion();
?> |
puis celui pour les requêtes, il y a deux solutions avec ou sans filtre, je ne sais pas bien laquelle serait plus idéale.
Sans filtres
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <?php
$sql='SELECT *
FROM car_tbl
ORDER BY type, constructeur, modele, mes, exploitant, autres;';
$type=array();
$db = include 'dbbaseconnect.php';
try{
$stmt = $db->prepare($sql);
$type='';
$constructeur='';
$modeles='';
$mes='';
$exploitant='';
$autres='';
$id_superieur_a=0;
while($row= $stmt->fetch(PDO::FETCH_ASSOC)){
$type[]=$row;
}
unset($db);
//$data est complet
if(count($type)>0){
echo '<pre>';
print_r($type);
echo '</pre>';
}
else{
echo 'Aucun resultat pour cette requete';
}
}
catch (Exception $e) {
print "Erreur ! " . $e->getMessage() . "<br/>";
}
?> |
avec filtre
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| $sql='INSERT INTO car_tbl (id, type, constructeur, modele, mes, exploitant) VALUES (NULL, ?, ?, ?, ?, ?)';
$db = include 'db_mysql.php';
try {
$stmt = $db->prepare($sql);
$type='';
$constructeur='';
$models='';
$mes='';
$exploitant='';
$autres='';
$stmt->execute(array($type,$constructeur,$modeles,$mes,$exploitant,$autres)) ;
$nb_insert = $stmt->rowCount();
echo $nb_insert.' insertion effectuée<br/>';
unset($db);
}
catch (Exception $e) {
print "Erreur ! " . $e->getMessage() . "<br/>";
} |
Sur le même script, j'aimerais mettre aussi la requête UPDATE, voici le code qui a été placé en dessous de l'INSERT
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $sql='UPDATE contact SET = ? WHERE car_tbl.type = ?;';
$db = include 'db_mysql.php';
try {
$stmt = $db->prepare($sql);
$modeles='';
$type=0;
$stmt->execute(array($mail,$id)) ;
$nb_update = $stmt->rowCount();
echo $nb_update.' modif effectuée<br/>';
unset($db);
} catch (Exception $e) {
print "Erreur ! " . $e->getMessage() . "<br/>";
}
?> |
Pouvez me dire si le choix faire un script avec les deux requêtes est possible, ainsi que mes codes ont-ils beaucoup d'erreurs ?
merci d'avance