Utilisateur anonyme
-
4 déc. 2007 à 16:46
lesdis
Messages postés403Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 7 août 2020
-
5 déc. 2007 à 09:37
Bonsoir,
soit le code ci dessous
<?php
$link = mysqli_connect('localhost', 'root', '', 'essai');// le dernier parametre est le nom de la base
/* Vérification de la connexion */
if (!$link)
{
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
mysqli_select_db($link, "essai");// NE PAS OUBLIER CETTE LIGNE QUI N'EST PAS DANS L'EXEMPLE !!
//Le problème venait de la ligne ci-dessous qui renvoit faux dans $stmt! LE NOMBRE DE ? ETAIT ERRONNE, IL EN MANQUAIT UN !!!
$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?, ?)");
if ($stmt == false)
{
echo "faux renvoyé";
}
// Permet de lier les variables passées en paramètre à la requête !
mysqli_stmt_bind_param($stmt, 'ssd', $code, $language, $official, $percent);
/* Exécution de la requête préparée */
mysqli_stmt_execute($stmt);
printf("%d ligne insérée.\n", mysqli_stmt_affected_rows($stmt));
/* Fermeture de la commande */
mysqli_stmt_close($stmt);
/* Nettoyage de la table Langage */
//mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
//printf("%d ligne effacée.\n", mysqli_affected_rows($link));
/* Fermeture de la connexion */
mysqli_close($link);
?>
A l'execution, je récupère ce message d'erreur que je ne comprends pas, donc j'arrive pas a corriger :
Warning: mysqli_stmt_bind_param() [function.mysqli-stmt-bind-param]: Number of elements in type definition string doesn't match number of bind variables in /var/www/essai/index.php on line 24
lesdis
Messages postés403Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 7 août 2020 4 déc. 2007 à 18:18
Bonjour,
Dans le type de la fonction mysqli_stmt_bind_param, tu donnes la valeur 'ssd' ce qui signifie que la fonction recevra 2 variable string puis 1 variable décimale.
Je ne connais pas le type de tes 4 variables mais il manque surement une lettre dans type
je croyais que ssd était un des paramètres moi.... (j'ai recherché un exemple mais pas assez commenté du coup). Donc si je comprends bien, ssd veut dire string-string-decimal
bon, je n'ai plus qu'un Warning.... A voir ce que c'est
Warning: mysqli_stmt_bind_param() [function.mysqli-stmt-bind-param]: Number of variables doesn't match number of parameters in prepared statement in /var/www/essai/index.php on line 31
L'erreur que tu as est l'inverse de celle d'hier, apparemment tu annonce 5 variable dans la fonction mysqli_prepare et tu n'en donnes que 4 dans msqli_stmt_bind_param, donc ca plante.