-
Version PHP obsolète
Bonjour,
Actuellement en stage dans le cadre d'une formation de Développeur d'applications, nous devons avec un collègue modifier certaines informations d'un site.
Nous avons donc repris la BDD du site ainsi que les fichiers sur wamp afin de faire en 1er lieu les modifications en local.
Notre problème est que le site utilise une version ancienne de php avec beaucoup de function obsolète comme mysql_connect , mysql_fetch_array .. ce qui nous empeche de se connecter correctement a la base de donnée et d'utiliser les requêtes.
Etant débutant nous aimerions savoir si quelqu'un peut nous éclairer sur la manière de procédé dans ces cas la.
Merci pour le temps que vous prendrez afin de nous éclairer.
Cordialement,
-
Salut,
tu as posté ta question sur le mauvais forum (ici c'est le .NET, pas le PHP).
Pour pas que tu aies fait le voyage pour rien (mais suffisait de demander à google) : les fonctions d'accès base de remplacement sont peu ou prou les mêmes, mais avec le préfixe mysqli_ au lieu de mysql_. Tu as aussi la possibilité d'utiliser PDO, mais perso je ne connais pas (à vrai dire le PHP en général c'est pas trop mon truc).
Bon stage.
-
D'accord désolé pour le mauvais post je pense qu'il sera déplacé sous peu alors.
Bien sur google à été le 1er ami à qui j'ai demandé de l'aide , le problème est que nous avons modifier le fichier connexion, et sois nous avons des messages d'erreur sur la connexion , soit nous arrivons à avoir tout le html mais avec des messages d'erreur sur tous les éléments qui proviennent de la BDD en nous disant que les variables ne sont pas défini ou "Warning : mysql_query() expects parameter 2 to be resource".
Sachant que nous ne devons pas à la base toucher le code mais simplement afficher des infos supplémentaires sur certaines pages venant de la BDD.
Si quelqu'un a un début de piste nous sommes toujours preneur.
Cordialement,
-
Ca remonte à loin, la dernière fois que j'ai fais du PHP et j'ai jamais trop dépassé le stade du débutant.
Personnellement, pour debugger (à mon avis, aujourd'hui on doit trouver mieux), je mettais un echo entre chaque ligne de PHP pour afficher les contenus de mes variables au fur et à mesure et voir jusqu'où j'allais dans mes scripts. :aie:
Ca peut peut être t'aider.
-
Je suis pas sûr que le topic soit déplacé au bon endroit par un modo, à ta place je reposterais sur le bon fofo pour être sûr.
Pour ton pb : en fait tu ne veux pas passer à MySQLi ou PDO_MySQL, c'est juste que tu as changé quelques info à un endroit et maintenant ça ne fonctionne plus, j'ai bon ? Pour ton warning c'est écrit "le 2ème param de l'appel à mysql_query est tout pourri". Pour info ce deuxième param est censé être la connexion (renvoyée par mysql_connect), donc soit tu lui passes une connexion moisie (et c'est l'appel à mysql_connect qui est la nouille dans le potage), soit tu lui passes rien et il tente une connexion par défaut qui -logiquement- fail.
PS : je pense qu'avec un peu de code ce serait plus simple de trouvé le souci.
-
2 pièce(s) jointe(s)
Très bien je le déplacerais après.
Pièce jointe 251780
En fait à la base on a rien changer, en arrivant sur le ficher connexion.php on a juste changer les valeurs de $db afin de mettre les valeurs de localhost.
On a eu des le debut ces erreurs :
Pièce jointe 251784
Suite à ca on a donc éditer le code afin d'avoir :
$servername="localhost";
$username="root";
$password="";
$dbname="happypeople";
//Creation connection
$db =mysqli_connect($servername,$username,$password,$dbname);
et aussi essayer avec PDO.
Mais avec cette méthode on a plus de html qui s'affiche, seulement un message d'erreur provenant d'un autre fichier :
Warning: mysql_query() expects parameter 2 to be resource, object given in C:\wamp\www\HappyPeopleWorld2016\page\include\requete.php on line 96
La ligne en question est celle la :
$getFiveUtilisateurs = mysql_query($fiveUtilisateurs,$db) or die("Erreur sql $getFiveUtilisateurs");
Apparemment il y avait une erreur dans la déclaration de parametre , en inversant les deux parametres l'erreur devient "expects parameter 1 to be string."
On a du coup essayer de transformer le my_sql en my_sqli , inverser les paramètres et du coup nous avons les mêmes messages d'erreurs sur les requêtes suivantes une par une.
Du coup on se demande si c'est un pb de connexion , ou un pb de commande obsolete qui faudrait remplacer ( sachant qu'il y en a énormément ) .
Merci du temps que vous prenez pour nous aider
-
Je viens de faire un tour sur la doc PHP pour mysql_query.
Essayes de virer le $db de ton mysql_query (si ce parametre est omis, c'est la dernière connexion ouverte qui sera utilisée)
Code:
$getFiveUtilisateurs = mysql_query($fiveUtilisateurs) or die("Erreur sql $getFiveUtilisateurs");
Si jamais ca passe, c'est que le problème vient peut être de ton $db (peut être qu'il est null). Du coup peut tu regarder ce qu'il contient au moment de ton mysql_query.
Si jamais ca passe pas, c'est que le problème vient peut être de ton $fiveUtilisateurs. Peut tu nous montrer ce qu'il contient au moment du mysql_query.
-
En virant le $db de $getFiveUtilisateurs on nous retourne encore l'erreur :
Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\HappyPeopleWorld2016\page\include\requete.php on line 96
De plus je ne pense que ce soit la variable en elle même puisque en utilisant la commande "mysqli_query()" et en inversant les paramètres cette erreur disparaît de la ligne 96 pour remettre le même message sur la 97 donc sur la requête suivante qui est identique.
Le site en ligne hébergé sur free n'a lui aucun problème, donc est ce que sur le serveur free il n'y a pas de problème car il autorise les anciennes versions de PHP alors qu'en local ces commandes sont obsolètes ?