[RESOLU] Problème méthode insertion générique

Petit nouveau ! | 7 Messages

10 avr. 2015, 09:02

Bonjour à tous!
Je veux créer une classe générique qui contient presque toutes les méthodes utiles pour la gestion d'une DB, mais j'ai un problème pour la méthode d'insertion , un warning se produit à la ligne 44 "Warning: PDOStatement::execute()", aidez-moi SVP :?
<?php
 class DAO{
	protected $db;
	
	public function __construct($db){
		$this->setDb($db);
	}
	public function setDb($db){
		$this->db=$db;
	}
	
	public function insertion($myObj){
		$nom=$myObj->getNomTable();
		$data=array();
		$sql = sprintf('DESCRIBE %s',$nom);
		$rep = $this->db->prepare($sql);
		$rep->execute();
		
		foreach($rep->fetchAll(PDO::FETCH_ASSOC) as $rows){
			$data[]=$rows['Field'];
		}
		echo '<pre>';
		print_r($data);
		foreach($data as $key=>$att){
			print_r($att);
			$method ='get'.ucfirst($att);
			if(method_exists($myObj,$method)){
				$sql="INSERT INTO ".$nom."SET".$att."=".$myObj->$method();
				$req1=$this->db->prepare($sql);
				$req1->bindValue($att,$myObj->$method());
				$req1->execute();
			}
		}
		
		
	}

}



?>

Petit nouveau ! | 7 Messages

10 avr. 2015, 09:50

oh, j'ai trouvé une erreur : $sql="INSERT INTO ".$nom."SET".$att."=".$myObj->$method();
le "$myObj->$method()" ne doit pas encore être mis là , my bad

Mammouth du PHP | 688 Messages

10 avr. 2015, 13:57

je pencherais plutot pour un résultat qui n'est pas une requete sql valide.
un insert ne se faisant pas avec un set (c'est pour l'update).

Petit nouveau ! | 7 Messages

12 avr. 2015, 16:07

euh c'est valide ... mais ce n'était pas vraiment le problème! je l'ai résolu en utilisant implode