Passage de mysql en mysqli

Résolu
clé de 12 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   -  
 jadano -
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.
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 141 Date d'inscription   Statut Membre Dernière intervention   1
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > clé de 12 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention  
 
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 15221 Date d'inscription   Statut Modérateur Dernière intervention   366
 
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 141 Date d'inscription   Statut Membre Dernière intervention   1
 
La solution était là, merci ($login a la place de $DBlogin) et ça change tout ;o)
0
jadano > clé de 12 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention  
 
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
 
$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