BONjour a tous j’ai un gros soucis depuis hier avec mon code essentiellment ma requete que je n’arrive pas a executé… apres recherche je n’ai pu resourdre mon probleme j’espere trouver avec vous le repos :(! Voici l’erreur qui s’affiche a mon ecran : 'Call to undefined method PDOStatement::fetchObjet()' pourtant je l’ai definie.
<?php
namespace App\Manager;
use PDO;
Use App\Entity\vehicules;
/**
*
*/
class VehiculesManager
{
/**
* undocumented class variable $pdo
*objet pdo lie a la base de donné, comme la base de donné va etre implement ou *utilisé dans plusieur methode,
*il est important de la stocker dans une variable d'objet
* @var string
**/
private $pdo;
private $dispo = 0;
/**
* undocumented class variable $pdoStatement
*l'objet $pdoStatement resultant de l'utilisation des methodes PDO::query
*et PDO::prepare.
*
*
* @var string
**/
private $pdoStatement;
/**
* undocumented function
*Initialisation de la connexion a la base de donné
* @return void
* @author
**/
public function __construct()
{
$this->pdo = new PDO('mysql:host=localhost;dbname=db_location', 'root', '');
}
/**
* undocumented function create
*elle insert un objet voiture dans la basse de donnée et met a jour l'objet passé en argument en lui specianf son identifiant
* @return void bool "true si l'objet a été inserré false si une erreur survient
* @author objet de type contate passé par reference &
**/
private function create (vehicules &$vehicules)
{
$this->pdoStatement=$this->pdo->prepare('INSERT INTO lo_vehicules VALUES(NULL,:TypeVoiture,:Matricule,:Marque,:Disponibilite,:Categorie)');
//LIAISON DES PARAMETRES
$this->pdoStatement->bindValue(':TypeVoiture',$vehicules->getTypeVoiture(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':Matricule',$vehicules->getMatricule(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':Marque',$vehicules->getMarque(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':Disponibilite',$vehicules->getDisponibilite(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':Categorie',$vehicules->getCategorie(), PDO::PARAM_STR);
//executionde la requete qui ramene true si cela c'est bien
//passe et false si c'est le cas contaire
$executeIsOk = $this->pdoStatement->execute();
var_dump($executeIsOk);
if ($executeIsOk) {
return true;
}
else
{
$id = $this->pdo->lastInsertId();
/* on fait la mise a jour pour reccuperer lid
c'est a dire on reccupere et stock l'id de la nouvelle entrée qu'on affecte a la variable vehicule pour la mettre a jour et que le cursseur passe a la ligne suivante*/
$vehicules = $this->read($id);
}
}
/**
* undocumented function Read
*Reccupere un objet vehicule a parti de son identifiant
* @return bool\vehicule\null false si une erreu survient, vehicule si une corresdance est trouvé et null s'il n'y a aucune correspondance
* @author identifiant d'un vehicules
**/
public function read ($id)
{
$this->pdoStatement = $this->pdo->prepare('SELECT * FROM lo_vehicules WHERE id = :id');
//liason des parametre
$this->pdoStatement->bindValue(':id', $id, PDO::PARAM_INT);
//execution de la requete
$executeIsOk=$this->pdoStatement->execute();
if ($executeIsOk)
{
//reccuperation de notre resultat
//fetch objet permet d'afficher le resultat sous forme d'objet.
$vehicules = $this->pdoStatement->fetchObjet('App\Entity\vehicules');
if ($vehicules === false)
{
return null;
}else{
return $vehicules;
}
}
else
{
//erreur d'execution
}
}
/**
* undocumented function readAll
* cette methode reccupere tous les objet vehicule de la base de données
* @return bool tableau d'objet de type vehicule ou un tableau vide s'il y a aucun objet de type vehicule dans la BDD ou false si une erreur survient
* @author
**/
public function readAll ()
{
$this->pdoStatement = $this->pdo->query('SELECT * FROM lo_vehicules ORDER BY Marque');
//construction d'un tableau d'objet de type vehicules
$lovehicules = [];
while ($vehicules =$this->pdoStatement->fetchObjet('App\Entity\vehicules')) {
$lovehicules[] = $vehicules;
}
/*$user = $pdo->query('SELECT * FROM users LIMIT 1')->fetchObject('User');*/
return $lovehicules;
}
/**
* undocumented function update
* cette methode met a jour un objet stocké en base de donné
* @return bool donc true en cas de succes ou false ne d'erreur
* @author un objet de type vehicules
**/
private function update (vehicules $vehicules)
{
$this->pdoStatement = $this->pdo->prepare('UPDATE lo_vehicules SET TypeVoiture=:TypeVoiture, Matricule=:Matricule, Marque=:Marque, Disponibilite=:Disponibilite, categorie=:categorie WHERE id=:id LIMIT 1');
$this->pdoStatement->bindValue(':TypeVoiture',$vehicules->getTypeVoiture(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':Matricule',$vehicules->getMatricule(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':Marque',$vehicules->getMarque(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':Disponibilite',$vehicules->getDisponibilite(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':categorie',$vehicules->getCategorie(), PDO::PARAM_STR);
$this->pdoStatement->bindValue(':id',$vehicules->getId(), PDO::PARAM_INT);
//execution dde la requete
$executeIsOk = $this->pdoStatement->execute();
if ($executeIsOk) {
return 'MODIFICATION EFFECTUE AVEC SUCCES';
}
else{
echo "VEUILLER REPRENDRE LA MODIFIACATION :( "; /*c'est a dire on reccupere et stock l'id de la
nouvelle entrée qu'on affecte a la variable vehicule pour la mettre a jour et que le cursseur passe a la ligne suivante*/
}
}
/**
* undocumented function delete
*cette methode permet de suprimer un objet stocké en base de donné
* @return bool donc true en cas de succes ou false ne d'erreur
* @author
**/
public function delete (vehicules $vehicules)
{
$this->pdoStatement = $this->pdo->prepare('DELETE FROM lo_vehicules WHERE id=:id LIMIT 1');
$this->pdoStatement->bindValue(':id',$vehicules->getId(), PDO::PARAM_INT);
$executeIsOk = $this->pdoStatement->execute();
if ($executeIsOk) {
return 'SUPRESSION EFFECTUE AVEC SUCCES';
}
else{
echo 'ERREUR DE SUPRESSION VOUS N\'ETES PAS AUTORISE A SUPRIMER CET OBJEt :(';
}
}
/**
* undocumented function
*
* @return void
* @author
**/
public function save(vehicules &$vehicules)
{
if (is_null($vehicules->getId())) {
return $this->create($vehicules);
}
else{
return $this->update($vehicules);
}
}
}
?>
+0
-0