Insertion avec PDO

Eléphanteau du PHP | 49 Messages

04 mars 2012, 22:41

Bonjour à toutes et à tous,

Quelques soucis avec PDO insertion, besoin d’un coup de pouce… :oops:
Voici mon fichier myparam.inc.php avec les mots de passe.
<?php
define("MYHOST","sql…");
define("MYUSER","ici l’user");
define("MYPASS","ici le mot de passe");
?>
Le fichier connexpdo.inc.php
<?php
function connexpdo($base,$param)
{
	include_once($param.".inc.php");
	$dsn="mysql:host=".MYHOST.";dbname=".$base;
	$user=MYUSER;
	$pass=MYPASS;
	try
	{
	$idcom = new PDO($dsn,$user,$pass);
	return $idcom;
	}
	catch(PDOException $except)
	{
	echo"Echec de la connexion",$except->getMessage();
	return FALSE;
	exit();
	}
}
?>
En début de mon fichier j’ai inséré ce bout de code
< ?php
 include_once("connexpdo.inc.php");
?>
J’arrive à afficher ma table avec cet exemple…
<?php
if($idcom=connexpdo("mabdd","myparam"))
{
$trier = isset($_POST['tri']) ? mysql_real_escape_string($_POST['tri']):'type_article';

  $requete="SELECT * FROM table_articles ORDER BY table_articles.$trier";
  $result=$idcom->query($requete);
  if(!$result)
  {
	$mes_erreur=$idcom->errorInfo();
	echo "Lecture impossible, code", $idcom->errorCode(),$mes_erreur[2];
  }
  else
  {
	echo <<<html
	<form action="" method="post" name="trier" id="trier">
  <p style="text-align:center">
<select name="tri" onchange="submit(this.form)">
	<option value="">Classer la table par...</option>
	<option value="id">Ordre ID</option>
	<option value="designation">Ordre de désignation</option>
	<option value="type_article">Sa désignation</option>
		<option value="prix_ttc">Prix TTC</option>

</select>
</p>
</form>
<br/>	
html;
	echo "<table cellspacing=\"1\" border=\"1\" style=\"width:100%;\">";
	echo "<tr style=\"text-align:center\"><th>N&deg; ID</th> <th>N&deg; Tra&ccedil;abilit&eacute;</th> <th>Cat&#233;gorie</th> <th>Sous-Cat&#233;gorie</th><th>D&#233;signation</th><th>Prix HT</th><th>Prix TTC</th><th>Date de Mise en vente</th><th>R&#233;sum&#233; des articles</th><th>Type</th></tr>";
	echo"<tr></tr>";
	while($ligne=$result->fetch(PDO::FETCH_NUM))
	{
      echo "<tr>";
      foreach($ligne as $valeur)
	  {
        echo "<td style=\"background-color:white\"> $valeur </td>";
	  }
	  echo "</tr>";
	}
	echo "</table>";
  }
  $result->closeCursor();
  $idcom=null;
}
?>
L’affichage de la table se passe sans problème, :D par contre dans un autre bout de code je n’arrive pas à insérer une ligne…. :cry:
Et le pire, aucune erreur ne s’affiche à l’écran…en fait, rien ne se passe… :shock:
Voici la partie html du form.
<form action= "<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="application/x-www-form-urlencoded">
<fieldset>
<legend><b> Ajouter une ligne compl&egrave;te</b></legend>
<table>
<tr>
<td></td><td>N&deg; Tra&ccedil;abilit&eacute;</td><td></td><td></td><td>D&eacute;signation</td><td>Prix 

HT</td><td>Prix TTC</td>
<td>Date de mise en vente</td><td>R&eacute;sum&eacute; de l&acute;article</td><td>Type</td>
</tr>
<tr>
<td><input type="hidden" name="id" value=""/></td><td><input type="text" name="tracabilite" 

value=""/></td><td><input type="hidden" name="categorie" value="1"/></td><td><input 

type="hidden" name="sous_categorie" value="1"/></td><td><input type="text" name="designation" 

value=""/></td><td><input type="text" name="prix_ht" value=""/></td><td><input 

type="text" name="prix_ttc" value=""/></td><td><input type="text" name="mev" 

value=""/></td><td><input type="text" name="resume" value=""/></td><td><select 

name="type"><option value=""></option><option value="1">Boeuf</option><option 

value="2">Veau</option></select></td>
</tr>
</table>
<table>
<tr>
<td><input type="reset" value=" Effacer "/></td>
<td><input type="submit" value=" Ajouter " name="bouton_ajouter"/></td>
</tr>
</table>
</fieldset>
</form>
Et la partie php en dessous du form…
<?php
$id_ajouter=connexpdo('mabdd','myparam');
if (isset($_POST["bouton_ajouter"]))
{ 

if(!empty($_POST['tracabilite'])&& !empty($_POST['categorie'])&& !empty($_POST['sous_categorie'])&& !empty($_POST['designation'])&& !empty($_POST['prix_ht'])&& !empty($_POST['prix_ttc'])&& !empty($_POST['mev'])&& !empty($_POST['resume'])&& !empty($_POST['type']))

{
  

  $ref_animal = $id_ajouter->quote($_POST['tracabilite']);
  $categorie = $id_ajouter->quote($_POST['categorie']);
  $sous_categorie = $id_ajouter->quote($_POST['sous_categorie']);
  $type_article = $id_ajouter->quote($_POST['designation']);
  $prix_ht = $id_ajouter->quote($_POST['prix_ht']);
  $prix_ttc = $id_ajouter->quote($_POST['prix_ttc']);
  $date_MEV = $id_ajouter->quote($_POST['mev']);
  $resume = $id_ajouter->quote($_POST['resume']);
  $designation = $id_ajouter->quote($_POST['type']);


  //Requète SQL
  $requete = $id_ajouter->exec("INSERT INTO table_articles (ref_animal, categorie, sous_categorie, type_article, prix_ht, prix_ttc, date_MEV, resume, designation) VALUES($ref_animal,$categorie,$sous_categorie,$type_article,$prix_ht,$prix_ttc,$date_MEV,$resume,$designation)");
 $requete=$id_ajouter->query($requete);
 
}
}  
  $id_ajouter=null;
?>
 
Ma requète ne fonctionne pas, c’est le néant…

Merci d’avance pour votre intervention… :lol:
Cordialement,
Bruno

ViPHP
xTG
ViPHP | 7331 Messages

04 mars 2012, 23:12

Gestion des erreurs PDO : http://php.net/manual/fr/pdo.error-handling.php

Et pour le debug des conditions rajoutes des else avec des messages d'erreur.

Eléphanteau du PHP | 49 Messages

06 mars 2012, 21:39

OK

Merci