[Résolu] Requête préparées
Publié : 26 septembre 2020 à 15:40
Bonjour,
J'ai créé une requête préparée insert qui ne fonctionne pas :
try {\t\t
\t\t $connexion = new PDO('mysql:host='.$host.';dbname='.$base, $user, $pass);
\t\t\t\t $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
\t\t\t\t
\t\t\t\t $prepared = $connexion->prepare
\t\t\t\t (
\t\t\t\t "INSERT INTO wp3_achats (id,code_article, product_name,createdon,qt,pa,latitude,longitude,id_magasin,utilisateur )\t\t\t
\t\t\t\t VALUES
\t\t\t\t (
\t\t\t\t\t :id ,
\t\t\t\t\t :codearticle ,\t\t\t\t
\t\t\t\t\t :created ,
\t\t\t\t\t :qt ,
\t\t\t\t\t :pa ,
\t\t\t\t\t :latitude ,
\t\t\t\t\t :longitude ,
\t\t\t\t\t :idmagasin ,
\t\t\t\t\t :utilisateur
\t\t\t\t\t)"
\t\t\t\t );
\t\t\t\t\t\t
\t $prepared->bindParam(':id' , $_GET['id']);
\t\t $prepared->bindParam(':codearticle', $_GET['code_article']);
\t $prepared->bindParam(':created', $_GET['createdon']);
\t $prepared->bindParam(':qt', $_GET['qt']);
\t $prepared->bindParam(':pa', $_GET['pa']);
\t $prepared->bindParam(':latitude', $_GET['latitude']);
\t $prepared->bindParam(':longitude', $_GET['longitude']);
\t $prepared->bindParam(':idmagasin', $_GET['id_magasin']);
\t $prepared->bindParam(':utilisateur', $_GET['utilisateur']); \t\t\t\t
\t\t \t\t\t\t\t\t\t
\t\t\t$prepared->execute();
\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t
}
catch(PDOException $x) { die("Secured"); }
\t\t$prepared = null;
\t\t$connection = null;
Malgré tous mes essais, elle ne fonctionne pas.
J'ai une requête équivalente en injection directe qui fonctionne
try {\t\t
\t\t $dbh = new PDO('mysql:host='.$host.';dbname='.$base, $user, $pass);
\t\t\t\t
\t\t\t\t $sql = "INSERT INTO wp3_achats (id,code_article,createdon,qt,pa,latitude,longitude,id_magasin,utilisateur)
\t\t\t\t VALUES
\t\t\t\t\t\t (
\t\t\t\t\t\t '$_POST[id]' ,
\t\t\t\t\t\t '$_POST[code_article]' ,\t\t\t\t\t\t
\t\t\t\t\t\t '$_POST[createdon]' ,
\t\t\t\t\t '$_POST[qt]' ,
\t\t\t\t\t\t '$_POST[pa]' ,
\t\t\t\t\t\t '$_POST[latitude]' ,
\t\t\t\t\t\t '$_POST[longitude]' , \t\t\t\t\t\t
\t\t\t\t\t\t '$_POST[id_magasin]' ,
\t\t\t\t\t\t '$_POST[utilisateur]'
\t\t\t\t\t\t )";
\t\t\t\t\t\t
if ($dbh->query($sql) === TRUE) { echo "New record created successfully";}
\t\t\t\t
\t\t\t\t else
\t\t\t\t {
\t\t\t\t\t echo "Error: " . $sql . "<br>" . $dbh->error;\t\t\t\t \t\t\t\t
\t\t\t\t }\t\t\t\t
}
catch (PDOException $error) {die("Erreur de connexion : " . $error->getMessage() );}\t\t\t
$dbh->close();
Pouvez-vous m'aider ?
Cordialement
Philippe
J'ai créé une requête préparée insert qui ne fonctionne pas :
try {\t\t
\t\t $connexion = new PDO('mysql:host='.$host.';dbname='.$base, $user, $pass);
\t\t\t\t $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
\t\t\t\t
\t\t\t\t $prepared = $connexion->prepare
\t\t\t\t (
\t\t\t\t "INSERT INTO wp3_achats (id,code_article, product_name,createdon,qt,pa,latitude,longitude,id_magasin,utilisateur )\t\t\t
\t\t\t\t VALUES
\t\t\t\t (
\t\t\t\t\t :id ,
\t\t\t\t\t :codearticle ,\t\t\t\t
\t\t\t\t\t :created ,
\t\t\t\t\t :qt ,
\t\t\t\t\t :pa ,
\t\t\t\t\t :latitude ,
\t\t\t\t\t :longitude ,
\t\t\t\t\t :idmagasin ,
\t\t\t\t\t :utilisateur
\t\t\t\t\t)"
\t\t\t\t );
\t\t\t\t\t\t
\t $prepared->bindParam(':id' , $_GET['id']);
\t\t $prepared->bindParam(':codearticle', $_GET['code_article']);
\t $prepared->bindParam(':created', $_GET['createdon']);
\t $prepared->bindParam(':qt', $_GET['qt']);
\t $prepared->bindParam(':pa', $_GET['pa']);
\t $prepared->bindParam(':latitude', $_GET['latitude']);
\t $prepared->bindParam(':longitude', $_GET['longitude']);
\t $prepared->bindParam(':idmagasin', $_GET['id_magasin']);
\t $prepared->bindParam(':utilisateur', $_GET['utilisateur']); \t\t\t\t
\t\t \t\t\t\t\t\t\t
\t\t\t$prepared->execute();
\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t
}
catch(PDOException $x) { die("Secured"); }
\t\t$prepared = null;
\t\t$connection = null;
Malgré tous mes essais, elle ne fonctionne pas.
J'ai une requête équivalente en injection directe qui fonctionne
try {\t\t
\t\t $dbh = new PDO('mysql:host='.$host.';dbname='.$base, $user, $pass);
\t\t\t\t
\t\t\t\t $sql = "INSERT INTO wp3_achats (id,code_article,createdon,qt,pa,latitude,longitude,id_magasin,utilisateur)
\t\t\t\t VALUES
\t\t\t\t\t\t (
\t\t\t\t\t\t '$_POST[id]' ,
\t\t\t\t\t\t '$_POST[code_article]' ,\t\t\t\t\t\t
\t\t\t\t\t\t '$_POST[createdon]' ,
\t\t\t\t\t '$_POST[qt]' ,
\t\t\t\t\t\t '$_POST[pa]' ,
\t\t\t\t\t\t '$_POST[latitude]' ,
\t\t\t\t\t\t '$_POST[longitude]' , \t\t\t\t\t\t
\t\t\t\t\t\t '$_POST[id_magasin]' ,
\t\t\t\t\t\t '$_POST[utilisateur]'
\t\t\t\t\t\t )";
\t\t\t\t\t\t
if ($dbh->query($sql) === TRUE) { echo "New record created successfully";}
\t\t\t\t
\t\t\t\t else
\t\t\t\t {
\t\t\t\t\t echo "Error: " . $sql . "<br>" . $dbh->error;\t\t\t\t \t\t\t\t
\t\t\t\t }\t\t\t\t
}
catch (PDOException $error) {die("Erreur de connexion : " . $error->getMessage() );}\t\t\t
$dbh->close();
Pouvez-vous m'aider ?
Cordialement
Philippe