Connection base avec mysqli
Résolu
t671
Messages postés
1476
Date d'inscription
Statut
Membre
Dernière intervention
-
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Sur mon site, j'ai un fichier "connexion" qui me permet de me connecter à ma base de données. Et comme maintenant il faut utiliser mysqli, je n'arrive ^plus à me connecter.
Voici mon script de connexion :
Et avec ceci, j'ai ce message d'erreur :
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/.............../public_html/connexion/connexion.php on line 9
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/............../public_html/connexion/connexion.php on line 9
La ligne 9 correspond à : mysqli_select_db
Merci de votre aide.
Sur mon site, j'ai un fichier "connexion" qui me permet de me connecter à ma base de données. Et comme maintenant il faut utiliser mysqli, je n'arrive ^plus à me connecter.
Voici mon script de connexion :
<? // information pour la connection à la DB $host; $host = '...........'; $user = '...........'; $pass = '...........'; $db = '...........'; $link = mysqli_connect ($host,$user,$pass) or die ('Erreur : '.mysqli_error() ); mysqli_select_db($db, $link) or die ('Erreur :'.mysqli_error()); ?>
Et avec ceci, j'ai ce message d'erreur :
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/.............../public_html/connexion/connexion.php on line 9
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/............../public_html/connexion/connexion.php on line 9
La ligne 9 correspond à : mysqli_select_db
Merci de votre aide.
A voir également:
- Mysqli_select_db expects 2 parameters
- Gmail connection - Guide
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Formules excel de base - Guide
- Facebook connection - Guide
8 réponses
Salut,
Ton message d'erreur est assez explicite, mysqli.select-db attend un object mysqli en premier paramètre et tu lui donnes une chaine.
Tout est dans la doc :
https://www.php.net/manual/en/mysqli.select-db.php
Il faut inverser tes deux paramètres.
Si tu n'utilises qu'une seule db, tu peux aussi la passer en paramètres de ton connect:
Ton message d'erreur est assez explicite, mysqli.select-db attend un object mysqli en premier paramètre et tu lui donnes une chaine.
Tout est dans la doc :
https://www.php.net/manual/en/mysqli.select-db.php
Il faut inverser tes deux paramètres.
Si tu n'utilises qu'une seule db, tu peux aussi la passer en paramètres de ton connect:
mysqli_connect ($host,$user,$pass,$db) ...
Je n'ai qu'une base de données, donc c'est ok pour ça :
Mais je ne comprends pas pour le reste !?
$link = mysqli_connect ($host,$user,$pass,$db) or die ('Erreur : '.mysqli_error() ); mysqli_select_db($link) or die ('Erreur :'.mysqli_error());
Mais je ne comprends pas pour le reste !?
Ouais ! Mais j'ai toujours mon erreur :
Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /home/u251224104/public_html/connexion/connexion.php on line 9
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u251224104/public_html/connexion/connexion.php on line 9
Erreur :
Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /home/u251224104/public_html/connexion/connexion.php on line 9
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u251224104/public_html/connexion/connexion.php on line 9
Erreur :
Mais j'ai toujours le message d'erreur ...............
Et si j'ouvre une pagge associée à la connesion :
J'ai le même genre de message d'erreur :
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /home/u251224104/public_html/FR/bienvenue_FR.php on line 11
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u251224104/public_html/FR/bienvenue_FR.php on line 11
Erreur :
La ligne 11 est le $result.
Et si j'ouvre une pagge associée à la connesion :
<?php include ('../connexion/connexion.php'); $requete="SELECT texte_FR,lien_photo,largeur FROM bienvenue"; $result = mysqli_query($requete,$link) or exit ('Erreur : '.mysqli_error() ); $row = mysql_fetch_array($result);
J'ai le même genre de message d'erreur :
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /home/u251224104/public_html/FR/bienvenue_FR.php on line 11
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u251224104/public_html/FR/bienvenue_FR.php on line 11
Erreur :
La ligne 11 est le $result.
C'est la même erreur et donc le même problème : tes paramètres sont inversés dans mysqli_query.
Comme tu peux le voir dans la doc https://www.php.net/manual/en/mysqli.query.php
Le link va en premier, la requête en 2d.
Sur la ligne d'après pense à utiliser mysqli_fetch_array
Comme tu peux le voir dans la doc https://www.php.net/manual/en/mysqli.query.php
Le link va en premier, la requête en 2d.
Sur la ligne d'après pense à utiliser mysqli_fetch_array
et ton mysqli_error doit aussi recevoir ton $link en paramètre.
https://www.php.net/manual/en/mysqli.error.php
https://www.php.net/manual/en/mysqli.error.php
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
En complément des réponses de Firoxyd ( qui sont "parfaites" ^^ ) .. je rajouterai qu'il te suffit de regarder les exemples donnés sur le site de php !
par exemple :
Cordialement,
Jordane
En complément des réponses de Firoxyd ( qui sont "parfaites" ^^ ) .. je rajouterai qu'il te suffit de regarder les exemples donnés sur le site de php !
par exemple :
<?php $host = "localhost"; $user = "my_user"; $password = "my_password"; $bdd = "world"; $link = mysqli_connect($host, $user,$password , $bdd ); /* Vérification de la connexion */ if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } // requête : $query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5"; if ($result = mysqli_query($link, $query)) { /* Récupère un tableau associatif */ while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); } /* Libération des résultats */ mysqli_free_result($result); }else{ //Affichage de l'erreur : printf("Errormessage: %s\n", mysqli_error($link)); } /* Fermeture de la connexion */ mysqli_close($link); ?>
Cordialement,
Jordane
Encore une question ..................
A la fin de mes scripts, je mets
et j'ai l'erreur :
Warning: mysqli_close() expects exactly 1 parameter, 0 given in ...........
qui correspond à la ligne mysqli_close.
Cette ligne est-elle en trop ???
A la fin de mes scripts, je mets
mysqli_free_result($result); mysqli_close(); exit; ?>
et j'ai l'erreur :
Warning: mysqli_close() expects exactly 1 parameter, 0 given in ...........
qui correspond à la ligne mysqli_close.
Cette ligne est-elle en trop ???
Ah ben oui .............. ;)
Encore une question :
pour calculer le nombre d'enregistrement dans la table, je faisais :
Maintenant, si j'écris :
Je n'ai pas le bon résultat ! J'obtiens 1, alors qu'il y en a une vingtaine ! ?
Encore une question :
pour calculer le nombre d'enregistrement dans la table, je faisais :
$nb_id = "SELECT COUNT(DISTINCT id) AS compteur FROM europe"; $result = mysql_query($link,$nb_id) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result); echo $total;
Maintenant, si j'écris :
$nb_id = "SELECT COUNT(DISTINCT id) AS compteur FROM europe"; $result = mysqli_query($link,$nb_id) or die ('Erreur : '.mysqli_error($link) ); $total = mysqli_num_rows($result); echo $total;
Je n'ai pas le bon résultat ! J'obtiens 1, alors qu'il y en a une vingtaine ! ?
Ça devait déjà être faux avant.
mysqli_num_rows compte le nombre de lignes de résultat retourné par la requête (avec le count ça sera toujours 1).
Ici tu as besoin de lire le résultat de ta requête count. Il faut faire un fetch, par exemple un fetch_row et prendre la première colonne.
(non testé)
mysqli_num_rows compte le nombre de lignes de résultat retourné par la requête (avec le count ça sera toujours 1).
Ici tu as besoin de lire le résultat de ta requête count. Il faut faire un fetch, par exemple un fetch_row et prendre la première colonne.
$row = fetch_row($result); $total = $row[0];
(non testé)