Menu

MSG d'erreur avec mysqli [Résolu]

Messages postés
96
Date d'inscription
samedi 19 juin 2010
Dernière intervention
6 mars 2019
-
Bonjour,

J'aimerai comprendre un truc
Lorsque je fais un update dans une table de ma base, tout fonctionne normalement.
Lorsque je fais un insert into j'ai le message d'erreur
Warning: mysqli_error() expects exactly 1 parameter, 0 given in ....
J'avoue que je n'arrive pas à expliquer pourquoi ma liaison est bonne pour un truc et pas bonne pour l'autre....
J'ai lu avec intérêt les réponses sur CCM sur ce MSG d'erreur sans trouver mon bonheur!
Mon script connexion :
 $cnx= mysqli_connect($DBserveur, $DBlogin, $DBpassword, $DBbase); 
if ($cnx->connect_errno) {
    printf("Échec de la connexion : %s\n", $cnx->connect_error);
    exit();
 }

mon script requête:
include ("../lib/cnx.php");
$req="insert into livres (abrev,nom,prenom,titre,code) values ('$genre','$nom','$prenom','$titre','$init')" ;  
$exec=mysqli_query($cnxi, $req)or die (mysqli_error());



EDIT : Ajout des balises de code par la modération !

Bien sur, aucun ajout dans ma table..

Une explication?
Merci d'avance

Configuration: Windows / Firefox 65.0
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
25037
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mars 2019
1909
1
Merci
Bonjour....

un i en trop... dans $cnxi


NB: A l'avenir, pour poster du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE (et en y précisant le langage afin d'avoir la coloration syntaxique)
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 46945 internautes nous ont dit merci ce mois-ci

clé de 12
Messages postés
96
Date d'inscription
samedi 19 juin 2010
Dernière intervention
6 mars 2019
1 -
Merci Jordane mais non, ce n'est pas ça... J'ai voulu alléger ma discussion je mets le code cnx.php en entier.
<?php
$cnxi= mysqli_connect($DBserveur, $DBlogin, $DBpassword, $DBbase);
if ($cnxi->connect_errno) {
printf("Échec de la connexion : %s\n", $cnxi->connect_error);
exit();
}
$cnx= mysqli_connect($DBserveur, $DBlogin, $DBpassword, $DBbase);
if ($cnx->connect_errno) {
printf("Échec de la connexion : %s\n", $cnx->connect_error);
exit();
}
?>

Pourquoi double syntaxe? Parce que lorsqu'on a du passer au mysqli, il y avait plein de requêtes mysql, et la flemme m'a conduit à me dire "Gardons $cnx et rajoutons des $cnxi...." (On avait eu un échange il y a quelques mois ou années sur le passage au mysqli! ) ça me fera économiser des "i" ;o).

Le problème demeure. Pourquoi, avec la même syntaxe, l'update marche, pas le insert?
Je copie mes 2 syntaxes :

ça ça marche :
<?php
je récupère les $_POST
include ("../lib/cnx.php");
if (empty($rendu))
{
$req="update livres set prete_a = '$emprunteur', prete_le = '$pret' where num = $num" ;
}
else
{
$req="update livres set prete_a = '$emprunteur', rendu_le = '$rendu' where num = $num" ;
}
$exec=$cnxi->query($req)or die (mysqli_error());
header ("location:index2.php");
?>

ça ça marche pas :
<?php
je récupère mes $_POST

include ("../lib/cnx.php");
$req="insert into livres (abrev,nom,prenom,titre,code) values ('$genre','$nom','$prenom','$titre','$init')" ;
$exec=$cnxi->query($req)or die (mysqli_error());
$exec=mysqli_query($cnxi, $req)or die (mysqli_error());
header("location:index2.php");
?>

Voila, voila.....
Merci en tous cas de l'aide au quotidien
clé de 12
Messages postés
96
Date d'inscription
samedi 19 juin 2010
Dernière intervention
6 mars 2019
1 -
J'ai oublié de préciser que j'avais fait un echo de mes données transmises : tout est OK de ce côté...
Commenter la réponse de jordane45
Messages postés
96
Date d'inscription
samedi 19 juin 2010
Dernière intervention
6 mars 2019
1
0
Merci
Ca y est; j'ai trouvé !!!!!!YOUPEEEEEEH
j'ai mis
$exec=$cnxi->query($req)or die (mysqli_error($cnxi));
Ca m'a permis de voir que ma table avait 4 colonnes aux valeurs par défaut non définies...J'ai rectifié et c'est bon..
Merci quand même pour l'assistance
Commenter la réponse de clé de 12