par
McWen » 24 juil. 2015, 23:43
Bonjour,
Je viens vers vous pour demander de l'aide lors de ma requête.
Par le biais d'un formulaire, je cherche à insérer des données dans une table "articles". Mais j'obtient plusieur message d'erreur.
Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in ajout.php on line 16
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in /ajout.php on line 19
L'insertion des données a échoué.
Warning: mysqli_stmt_close() expects parameter 1 to be mysqli_stmt, boolean given in /ajout.php on line 28
Voici mon script :
<body>
<form name="Formulaire" action="ajout.php" method="post">
<label for="code">Code</label>
<input type="text" id="code" name="code" required/><br />
<label for="designation">Désignation</label>
<input type="text" id="designation" name="designation" required/><br />
<label for="PU">Prix Unitaire</label>
<input type="number" id="PU" name="PU" /><br />
<label for="MadeIn">MadeIn</label>
<input type="text" id="MadeIn" name="MadeIn" /><br />
<input type="submit">
</form>
<?php
include('connect.php');
if (file_exists('connect.php')) {
// Préparation de la requête
$requete = "INSERT INTO articles (code, designation, PU, MadeIn) VALUES (?, ?, ?, ?)";
$stmt = mysqli_prepare($connexiondb, $requete);
// Récupération de la saisie du formulaire
$code = $_POST['code'];
$designation = $_POST['designation'];
$pu = $_POST['PU'];
$madeIn= $_POST['MadeIn'];
mysqli_stmt_bind_param($stmt, "ssds", $code, $designation, $pu, $madeIn);
// Exécution de la requête
$resultat = mysqli_stmt_execute($stmt);
if ($resultat){
echo "Les données ont bien été insérées.";
}else{
echo "L'insertion des données a échoué.";
}
// Fermeture du traitement
mysqli_stmt_close($stmt);
include('close.php');
}
?>
Après de multiple recherches, verifications de syntaxe, je craque et demande votre aide.
Je pense que la grosse partie du problème vient de :
$stmt = mysqli_prepare($connexiondb, $requete);
Mais je ne vois pas du tout comment le régler.
Je compte sur votre gentillesse.
Merci!
Bonjour,
Je viens vers vous pour demander de l'aide lors de ma requête.
Par le biais d'un formulaire, je cherche à insérer des données dans une table "articles". Mais j'obtient plusieur message d'erreur.
[quote]Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in ajout.php on line 16
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in /ajout.php on line 19
L'insertion des données a échoué.
Warning: mysqli_stmt_close() expects parameter 1 to be mysqli_stmt, boolean given in /ajout.php on line 28[/quote]
Voici mon script :
[html]<body>
<form name="Formulaire" action="ajout.php" method="post">
<label for="code">Code</label>
<input type="text" id="code" name="code" required/><br />
<label for="designation">Désignation</label>
<input type="text" id="designation" name="designation" required/><br />
<label for="PU">Prix Unitaire</label>
<input type="number" id="PU" name="PU" /><br />
<label for="MadeIn">MadeIn</label>
<input type="text" id="MadeIn" name="MadeIn" /><br />
<input type="submit">
</form>[/html]
[php]<?php
include('connect.php');
if (file_exists('connect.php')) {
// Préparation de la requête
$requete = "INSERT INTO articles (code, designation, PU, MadeIn) VALUES (?, ?, ?, ?)";
$stmt = mysqli_prepare($connexiondb, $requete);
// Récupération de la saisie du formulaire
$code = $_POST['code'];
$designation = $_POST['designation'];
$pu = $_POST['PU'];
$madeIn= $_POST['MadeIn'];
mysqli_stmt_bind_param($stmt, "ssds", $code, $designation, $pu, $madeIn);
// Exécution de la requête
$resultat = mysqli_stmt_execute($stmt);
if ($resultat){
echo "Les données ont bien été insérées.";
}else{
echo "L'insertion des données a échoué.";
}
// Fermeture du traitement
mysqli_stmt_close($stmt);
include('close.php');
}
?>[/php]
Après de multiple recherches, verifications de syntaxe, je craque et demande votre aide.
Je pense que la grosse partie du problème vient de : [i]$stmt = mysqli_prepare($connexiondb, $requete);
[/i]
Mais je ne vois pas du tout comment le régler.
Je compte sur votre gentillesse.
Merci!