Passage de mysql en mysqli

Résolu/Fermé
clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024 - Modifié par NHenry le 11/01/2016 à 21:06
 jadano - 12 oct. 2016 à 13:37
Bonjour,
Suite aux conseils avisés de J....., je tente de m'initier au mysqli. Je reprends mes commandes mysql qui fonctionnent bien et je teste patiemment ligne par ligne.
J'ai mis dans une feuille mes trucs de connexion:
$cnxi= mysqli_connect($DBserveur, $login, $DBpassword, $DBbase); 

et bien sur un include qui déclare cette feuille.
ensuite je fais ma soupe :

$req="select * from association order by nom";
// je teste ma connexion, c'est bon// 
if ($cnxi->connect_errno) {
    printf("Échec de la connexion : %s\n", $cnxi->connect_error);
    exit();
 }
 else
 {
    printf("connexion : reussie");
 }
//////////j'exécute ma requete////////////////////
$exec=$cnxi->query($req);

while ($val = mysqli_fetch_array($exec))
{   
 $num++;
 echo "<a href='./select.php?nb=$val[0]'>"." ".$val[1]." ".$val[2]." </a>. ";
 if ($num>4)
 {
  echo "<br>";
  $num=0;
 }
}


et de suite, je butte sur un msg d'erreur : mysqli_connect(): (HY000/1045): Access denied for user ''@'10.246.64.35' (using password: YES) etc....
alors qu'en mysql, ça marche bien. Il me faudrait une piste de recherche pour savoir ou l'envoi de la requete dysfonctionne.
Merci d'avance







EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
11 janv. 2016 à 23:24
Bonjour,

Visiblement, vu le message d'erreur
 Access denied for user ''@'10.246.64.35' 

il semble que ta variable $login ne contienne aucune valeur.

Comme le suggère Nhenry, fais donc un ECHO de tes variables pour savoir ce qu'elles contiennent et voir si c'est conforme à ce que tu attends.

Typiquement, tu peux le faire ici :
$cnxi= mysqli_connect($DBserveur, $login, $DBpassword, $DBbase); 
if ($cnxi->connect_errno) {
    printf("Échec de la connexion : %s\n", $cnxi->connect_error);
    echo "<br>DBserveur: ".$DBserveur;
    echo "<br>User : ".$login;
    echo "<br>DBpassword: ".$DBpassword;
    echo "<br>DBbase: ".$DBbase;
    exit();
 } else {
    printf("connexion : reussie");
 }




Par contre, dans ton code, tu sembles mélanger les deux "styles" d'écriture de mysqli.
On peut utiliser la forme de style "procédural" ... ou la forme de type "objet".
On utilise l' un OU l'autre (pas les deux en même temps....)

Lis donc ceci pour voir la différence et comment les utiliser :
https://www.php.net/manual/fr/mysqli.construct.php
https://www.php.net/manual/fr/mysqli.query.php
1
clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024 1
11 janv. 2016 à 23:39
C'est toujours après te lire que la réponse surgit! Pourtant je me suis relu, J'ai vérifié, essayé les -> les array ou row, etc, alors que je suis passé 1000 fois sur $login qui devait être en vérité $DBlogin.
J'enrage de ma distraction et de mon isolement .
Merci
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024
Modifié par jordane45 le 11/01/2016 à 23:59
Ne t'en fais pas... on est tous passé par là...
C'est avec nos erreurs qu'on apprend le mieux.

Ps: si la question est résolue, n'oublie pas de clore la discussion .
Bonne soirée.
Edit: Je viens de voir que c'était déjà fait. :-)
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
Modifié par NHenry le 11/01/2016 à 21:07
Si tu peux, essayes de faire un echo avec le contenu de tes variables de configuration, histoire de voir combien elles valent.

J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
0
clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024 1
12 janv. 2016 à 16:16
La solution était là, merci ($login a la place de $DBlogin) et ça change tout ;o)
0
jadano > clé de 12 Messages postés 131 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 16 janvier 2024
12 oct. 2016 à 13:36
Comment je peux transférer de mysql a mysqli
$data_array = array();
if (!read_mydata_cache($cache_params_array,$data_array)) {
//Get global settings list
$qr_res = mysql_query($cache_params_array["query"]) or query_die(__FILE__,__LINE__,mysql_error());
while ($myrow = mysql_fetch_array($qr_res))
{
$data_array[$myrow["settings_name"]] = array("value"=>$myrow["settings_value"]);
}
}

Merci
0
jadano > jadano
12 oct. 2016 à 13:37
$data_array = array();
	if (!read_mydata_cache($cache_params_array,$data_array)) {
		//Get global settings list
		$qr_res = mysql_query($cache_params_array["query"]) or query_die(__FILE__,__LINE__,mysql_error());
		while ($myrow = mysql_fetch_array($qr_res))
		{
			$data_array[$myrow["settings_name"]] = array("value"=>$myrow["settings_value"]);
		}
	}
0