2 pièce(s) jointe(s)
Script PHP - INSERT INTO #2
Bonjour, bonsoir!
Dans la continuité de mon projet de stage, je rencontre un second problème lors d'une insertion: dans un premier temps aucune insertion n'était prise en compte, j'ai donc changer la requête de ma fonction create() par une requête préparée! Malheuresement j'ai toujours un problème avec cette insertion, le dernier champ (dateProchaineRevision) est "null" alors que je le renseigne dans le formulaire.
Déjà, le formulaire:
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
|
<form method="POST" action="Scripts/vehicule_create.php">
Nom: <input type="text" name="nomVehicule"> <br>
Immatriculation: <input type="text" name="immatriculation"> <br>
Catégorie: <select name="categorieVehicule" style="width: 230px">
<option value="0"> - - - - - - - - </option>
<?php
$req = "SELECT * FROM categorieVehicule ORDER BY nomCategorieVehicule";
try{
$stmt = $pdo->prepare($req);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<option value='".$row["numCategorieVehicule"]."'>".$row["nomCategorieVehicule"]."</option>";
}
}
catch(Exception $e){
print "Erreur ! ".$e->getMessage(). "<br>";
}
?>
</select> <br>
Nom abrégé: <input type="text" name="nomVehiculeABRG"> <br>
Date de la précédente révision: <input type="text" name="dateDerniereRevision"> <br>
Date de la prochaine révision: <input type="text" name="dateProchaineRevision"> <br>
<input type="submit" name="Valider">
</form> |
Ensuite, le formulaire (graphique):
Pièce jointe 388467
On constate que la date de la prochaine révision est bien renseignée.
Script vehicule_create.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<?php
include "../include/connexion.php";
if (isset($_POST['nomVehicule']) && isset($_POST['immatriculation']) && isset($_POST['categorieVehicule']) ) {
$vide = null;
include "../Classe/vehicule.php";
$unVehicule = new vehicule ($_POST['immatriculation'], $_POST['nomVehicule'], $_POST['categorieVehicule']);
$nomABRG = ($_POST['nomVehiculeABRG'] == "") ? $vide : $_POST['nomVehiculeABRG'];
$unVehicule->setNomVehiculeABRG($nomABRG);
$dateDerniere = ($_POST['dateDerniereRevision'] == "") ? $vide : $_POST['dateDerniereRevision'];
$unVehicule->setDateDerniereRevision($dateDerniere);
$dateProchaine = ($_POST['dateProchaineRevision'] == "") ? $vide : $_POST['dateProchaineRevision'];
$unVehicule->setDateProchaineRevision($dateProchaine);
$unVehicule->create();
header("Location: ../page_vehicule.php");
}
?> |
Méthode create() de la classe vehicule:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public function create(){
include "../include/connexion.php";
try{
$req = "INSERT INTO vehicule (numVehicule, immatriculation, numCategorieVehicule, nomVehicule, nomVehiculeABRG, dateDerniereRevision, dateProchaineRevision) VALUES (NULL,?,?,?,?,?,?)";
$stmt = $pdo->prepare($req);
$params = [$this->_immatriculation, $this->_numCategorieVehicule, $this->_nomVehicule, $this->_nomVehiculeABRG, $this->_dateDerniereRevision, $this->_dateProchaineRevision];
echo($req);
var_dump($params);
$stmt->excute($params); //L'erreur ici est volontaire !! Elle me permet de voir mon "echo" et "var_dump($params)".
}
catch(Exception $e){
print "Erreur ! ".$e->getMessage(). "<br/>";
}
} |
Voici ce que j'obtient:
Pièce jointe 388468
Sans mon erreur volontaire, l'insertion s'effectue bien mais laisse la propriété "dateProchaineRevision" vide...
J'ai relus tous ces codes à plusieurs reprises, par conséquent si quelqu'un me pointe que le problème vient d'une erreur de syntaxe, j'abandonne la progra :aie:
Plus sérieusement, si une personne serait apte à éclairer ma lanterne sur la possible solution à mon problème, je suis preneur!
Merci d'avance.
Cordialement,
Skunka.