8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,
je me permet de poster sur ce forum suite à un problème étonnant:

J'ai créé cette fonction qui marche très bien :


		// On ajoute une entrée dans la table unmanage_Table
		$req = $bdd->prepare('INSERT INTO Unmanage_Table(server_id, cat, duree, incident_id, motif, utilisateur_id, date, statut) VALUES(:server_id, :cat, :duree, :incident_id, :motif, :utilisateur_id, :date, :statut)')or die(print_r($req->errorInfo()));
		$req->execute(array(
		'server_id' => $server,
		'cat' => $_POST['cat'],
		'duree' => $_POST['duree'],
		'incident_id' => $_POST['numéro'],
		'motif' => $_POST['motif'],
		'utilisateur_id' => $_SESSION['userid'],
		'date' => today,
		'statut' => $statut
		))or die(print_r($req->errorInfo()));


Voila, a présent j'essaye de l'executer au sein même d'une fonction , maisl a ca ne marche plus :

Unmanage($name,$key,$server,$_POST['cat'],$_POST['duree'],$_POST['numéro'],$_POST['motif'],$_SESSION['userid'],$statut);
function Unmanage($server,$y,$serveur,$cat,$duree,$numéro,$motif,$userid,$statut){	
		// On ajoute une entrée dans la table unmanage_Table
		$req = $bdd->prepare('INSERT INTO Unmanage_Table(server_id, cat, duree, incident_id, motif, utilisateur_id, date, statut) VALUES(:server_id, :cat, :duree, :incident_id, :motif, :utilisateur_id, :date, :statut)')or die(print_r($req->errorInfo()));
		$req->execute(array(
		'server_id' => $serveur,
		'cat' => $cat,
		'duree' => $duree,
		'incident_id' => $numéro,
		'motif' => $motif,
		'utilisateur_id' => $userid,
		'date' => today,
		'statut' => $statut
		))or die(print_r($req->errorInfo()));
}


Et là, le message d'erreur que IE 6 m'affiche est :
PHP Notice: Undefined variable: i in C:\www\Unmanage\UnmanageTextArea.php on line 70 PHP Notice: Undefined variable: server in C:\www\Unmanage\unmanageFct.php on line 5 PHP Notice: Use of undefined constant Unmanaged - assumed 'Unmanaged' in C:\www\Unmanage\unmanageFct.php on line 83 PHP Notice: Undefined variable: bdd in C:\www\Unmanage\unmanageFct.php on line 90 PHP Fatal error: Call to a member function prepare() on a non-object in C:\www\Unmanage\unmanageFct.php on line 90

Voila, je ne comprends pas le "fatal error", pourquoi ma fonction n'est soudainement plus un objet ? la ligne 90 correspond ici à la ligne 4

Merci Smiley smile
Modifié par dekker (10 Nov 2010 - 15:21)
Salut dekker

Il y a une chose que je ne comprend pas dans ton script. Il s'agit de ton $req->execute (array ( clés/valeurs ));
Les clés de ton array devrait être les valeurs de VALUES : un exemple.


. . . Les includes de connexion : PDO . . .
  try {
     $requete = "INSERT INTO articles (categorie, titre, soustitre, auteur, date, texte) VALUES (:categorie, :titre, :soustitre, :auteur, :date, :texte)";
	 $cibleur = $cible->prepare($requete);
	 # --
	 $categorie = $_POST['categorie'];
	 $titre = $_POST['titre'];
	 $soustitre = $_POST['soustitre'];
	 $auteur = $_POST['auteur'];
	 $date = $_POST['date'];
	 $texte = $_POST['texte'];
	 # --	 
	 $affiche = array(':categorie'=>$categorie, ':titre'=>$titre, ':soustitre'=>$soustitre, ':auteur'=>$auteur, ':date'=>$date, ':texte'=>$texte);
	 $cibleur->execute($affiche);
	 # -- 
  }
  catch (PDOException $e) { echo $e->getMessage(); } 
  # --
  $cible = null;
 . . . Suite du code . . .

Bon d'accord que mon script est différent du tiens mais la différence réside surtout sur l'utilisation du array

. . .
$affiche = array(':categorie'=>$categorie, ':titre'=>$titre, ':soustitre'=>$soustitre, ':auteur'=>$auteur, ':date'=>$date, ':texte'=>$texte);
$cibleur->execute($affiche);
. . .

Les clés du array devraient être les valeurs de VALUES. Il me semble en tout cas.

++
Modifié par zardoz (10 Nov 2010 - 13:45)
j'ai essayé en adoptant ton code,
IE me fait toujours la m^me erreur ..
à savoir :
93 PHP Fatal error: Call to a member function prepare() on a non-object in C:\www\Unmanage\unmanageFct.php on line 93

ligne 91 à +++
 try { 
			$requete = "INSERT INTO articles (categorie, titre, soustitre, auteur, date, texte) VALUES (:categorie, :titre, :soustitre, :auteur, :date, :texte)"; 
			$cibleur = $cible->prepare($requete); // ligne 93
			# -- 
			$categorie = $_POST['categorie']; 
			$titre = $_POST['titre']; 
			$soustitre = $_POST['soustitre']; 
			$auteur = $_POST['auteur']; 
			$date = $_POST['date']; 
			$texte = $_POST['texte']; 
			# --      
			$affiche = array(':categorie'=>$categorie, ':titre'=>$titre, ':soustitre'=>$soustitre, ':auteur'=>$auteur, ':date'=>$date, ':texte'=>$texte); 
			$cibleur->execute($affiche); 
			# --  
		} 
  catch (PDOException $e) { echo $e->getMessage(); }  
  # -- 
  $cible = null; 



EDIT: j'ai toruvé, $bdd n'était pas initialisé ... Smiley ohwell
Sorry et merci encore Smiley smile
Modifié par dekker (10 Nov 2010 - 15:21)