Titre: Php, "mysql_", "mysqli_", "PDO", QUE choisir ? ? ?
Posté par: yvanoph le Mer. 18 Mars 2015 à 20:53:13
Bonjour / Bonsoir à toutes et tous, vous ne le savez probablement pas, mais php est un Langage qui a beaucoup évolué et qui, malgré tous les râleurs, est toujours très largement exploité, notamment bien évidemment dans nos Sites ?
Je ne sais si certains ont déjà eu quelques soucis de connexion à leurs Bases de Données, mais les récentes Versions font que...
De fait, les fonctions conventionnelles "mysql_gnagnagna" sont donc toutes obsolètes, remplacées en grande partie par "mysqli_gnagnagna" avec une syntaxe un peu différente sinon plus complète quant aux arguments (Variables...) à faire avaler ? Mais SURTOUT la gamme "PDO" est arrivée, orientée notoirement "programmation objet" avec tous les avantages qui en découlent, mais surtout s'adressant à un panel bien plus large quant aux formats des DBs puisque nous pouvons accéder en plus à "PostgreSQL" et "Oracle", "mysqli_" ne s'adressant toujours qu'au format "MySQL" !
En conséquence, il conviendra donc de mettre à jour si nécessaire le fichier "WIForm.php" chez vos hébergeurs en modifiant la ligne adéquate ?
Quant au "pack" de JSCXs dédiés aux Accès, Créations, Ajouts, Modifications, Suppressions de Bases de Données, Tables, Champs et/ou Contenus directement depuis les Pages de vos Sites en Janvier 2013, l'ensemble a été mis à jour, incluant un choix supplémentaire pour les paramètres puisque les trois possibilités sont accessibles selon les Versions chez votre hébergeur et vos types de Bases de Données ?
Néanmoins et pour l'instant, si les "basiques" fonctionnent tous parfaitement, l'ensemble n'a pas encore été totalement testé en "PDO"...
Enfin, la possibilité de s'adresser à X DBs et/ou Y Tables dans la même Page reste maintenue, de même que le fichier unique pour l'ensemble du Site quant aux paramètres de connexion, toujours pour X DBs et/ou Y Tables, ce afin d'économiser la place chez votre hébergeur !
Voilà voilà, bien cordialement, Yvanoph---
Titre: Connexion sous php dernières Versions...
Posté par: yvanoph le Sam. 04 Avril 2015 à 21:11:31
S'il vous arrive de ne pouvoir vous connecter facilement à vos Bases de Données, la MaJ (Mise à jour) est fort simple !
D'ailleurs il y a de quoi se poser bien des questions à voir toujours employer des fonctions OBSOLETES dans nos programmes ? ? ? En effet, les "nouvelles" fonctions sont applicables depuis la Version 4.1.3, autant dire que ça date déjà de quelques années, non ?
Lien : Début d'application des nouvelles fonctions php pour accéder à MySQL ! (http://php.net/manual/fr/intro.mysqli.php)
De fait, récupérer par FTP votre fichier ws.php et l'éditer de préférence dans NotePad++ ?
Chercher la ligne :
$link=mysql_connect($server,$account,$pwd)or die('$ERR Impossible de se connecter au serveur.');
et la commenter par // pour obtenir :
// $link=mysql_connect($server,$account,$pwd)or die('$ERR Impossible de se connecter au serveur.');
De même chercher :
mysql_selectdb($database)or die('$ERR Impossible de se connecter à la base.');
et commenter de la même façon pour obtenir :
// mysql_selectdb($database)or die('$ERR Impossible de se connecter à la base.');
Astuce : Le fait de "commenter" ainsi une ligne de Code en php comme en JavaScript rend cette ligne NON utilisée par le programme ! D'ailleurs dans NotePad++ vous noterez que les mots clefs des fonctions perdent bien évidemment leur couleur vive propre... D'où le changement de couleur ci dessus, devenu quasiment illisible comme dans l'éditeur ?
Puis rajouter :
$link=new mysqli($server,$account,$pwd,$database);
car il faut quand même bien lui donner une valeur à cette variable, non ?
Enfin un peu plus bas, identifier :
else print '$ERR '.mysql_errno($link).' : '. mysql_error($link);,
commenter pour obtenir :
// else print '$ERR '.mysql_errno($link).' : '. mysql_error($link);
puis rajouter :
else if($link->connect_errno){ echo "Echec lors de la connexion à MySQL : (".$link->connect_errno.") ".$link->connect_error; };
Et pour vérifier le BON fonctionnement de cette modification de base, rajouter :
echo $link->host_info . "\n";
que vous pourrez conserver pour des contrôles ultérieurs en commentant :
// echo $mysqli->host_info . "\n";
ATTENTION, dans le cas d'une connexion via TCP/IP, il ne sera pas possible de l'ouvrir avec le nom de "localhost", auquel cas le remplacer par le générique classique "127.0.0.1" et hop, au boulot !
Ou votre propre IP, sous réserve d'en avoir autorisé les droits d'accès, bien évidemment ?
Par contre, n'ayant jamais paramétré une IP en Variable dans XWebDesignor sous l'Onglet "Propriétés du Site => Publication => MySQL => Serveur SQL :" puisque passant par mes propres Boutons depuis des lustres, à vérifier ?
Ah, j'allais oublier... Tant que vous y êtes, chercher au début :
$database=getField("WS_database");;
et SUPPRIMER le deuxième point-virgule INUTILE ? Depuis l'origine...
Et si vous craignez de vous tromper, juste faire un copié/collé du texte ci dessous ?
Bien cordialement, Yvanoph---
|