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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| $reqPrepare= "INSERT IGNORE INTO reception (num_recep,id_caisse,id_produit,id_pays,montant,user_name)
SELECT '',(SELECT id_caisse FROM caisse WHERE nom=:nom_caisse) AS id_caisse,
(SELECT id_produit FROM produit WHERE description=:produit) AS id_produit,
(SELECT id_pays FROM pays WHERE description=:pays) AS id_pays,:montant,:user_name";
$variables = array('nom_caisse'=> $_POST["caisseRecep"],
'produit'=>$_POST["prodRecep"],
'pays'=> $_POST["paysRecep"],
'montant'=> $_POST["mntantTTC"],
'user_name'=> $_SESSION["user_name"]);
$typeVariables = array('nom_caisse'=> PDO::PARAM_STR,
'produit'=> PDO::PARAM_STR,
'pays'=> PDO::PARAM_STR,
'montant'=> PDO::PARAM_INT,
'user_name'=> PDO::PARAM_STR);
// Exécuter la méthode
$gest->insert($reqPrepare,$variables,"RE",$typeVariables);
//voici la methode appele
public function insert($reqPrepare,$variables,$num,$typeVariables=false)
{
try {
$this->_connexion->beginTransaction();
// on prépare notre requête
$requete_prepare_1=$this->_connexion->prepare($reqPrepare);
//Associer les valeurs aux place holders
foreach($variables as $key => $value)
{
if($typeVariables)
$requete_prepare_1->bindValue(":".$key."",$value,$typeVariables[$key]);
else
{
if(is_int($value))
$param = PDO::PARAM_INT;
elseif(is_bool($value))
$param = PDO::PARAM_BOOL;
elseif(is_null($value))
$param = PDO::PARAM_NULL;
elseif(is_string($value))
$param = PDO::PARAM_STR;
else
$param = FALSE;
if($param)
$requete_prepare_1->bindValue(":".$key."",$value,$param);
}
}
if (!$requete_prepare_1->execute())
{echo "<BR>Erreur dans l'exécution de la requête<br>";
exit();}
$msg=sprintf('%08d',$this->_connexion->lastInsertId());
$this->_connexion->commit();
return $num.$msg;
}
catch(PDOException $e) {
$this->_connexion->rollback();
//on affiche un message d'erreur ainsi que les erreurs
echo 'Tout ne s\'est pas bien passé, voir les erreurs ci-dessous<br />';
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
//on arrête l'exécution s'il y a du code après
exit();
}
} |
Partager