Base di dati di MySQL che maneggia in PHP
| by John L | November 07, 2004
La plupart des sites Web interactifs exigent de nos jours des données d'être présentées dynamiquement et d'être interactivement basées sur l'entrée de l'utilisateur. Par exemple, un client peut devoir noter dans un site Web au détail pour vérifier son histoire de achat. Dans ce cas, le site Web aurait stocké deux types de données afin le client pour exécuter le contrôle - les détails personnels de l'ouverture du client ; et les articles achetés du client. Ces données peuvent être stockées dans deux types de stockage - les dossiers plats ou les bases de données.
Les dossiers plats sont seulement faisables dans très bas aux sites Web de bas volume car les dossiers plats ont 3 faiblesses inhérentes :
• L'incapacité de classer les données. Ceci le rend nécessaire de lire potentiellement toutes données séquentiellement. C'est un problème important s'il y a beaucoup de disques dans le dossier plat parce que le temps requis pour lire le dossier plat est proportionné au nombre de disques dans le dossier plat.
• L'incapacité de commander efficacement l'accès par des utilisateurs aux données
• Le stockage inefficace des données. Dans la plupart des cas, les données ne seraient pas chiffrées ou n'ont pas été comprimées car ceci aggraverait le problème No. 1 ci-dessus
L'alternative qui est, à mon avis, la seule méthode faisable, est de stocker les données dans une base de données. Une des bases de données les plus répandues est en service MySQL. Des données qui sont stockées dans une base de données peuvent facilement être classées, contrôlées et stockées efficacement. Sans compter que celle, la plupart des bases de données fournissent également une suite d'accompagner les utilités qui permettent à l'administrateur de base de données de maintenir la base de données - par exemple, protection et restauration, etc.
Les sites Web PHP employant préétablir approprié très bien à la base de données de MySQL car PHP a une coutume et un module intégré de MySQL qui communique très efficacement avec MySQL. PHP peut également communiquer avec MySQL par l'ODBC standard car MySQL est ODBC-conforme, cependant, ce ne sera pas aussi efficace qu'utilisant le module fait sur commande de MySQL pour PHP.
Le reste de cet article est un cours d'instruction sur la façon dont employer PHP :
• Relier à une base de données de MySQL
• Exécuter les rapports standard de SQL contre la base de données de MySQL
Commencer une session avec MySQL
Avant que le manuscrit de PHP puisse communiquer avec la base de données pour questionner, insérer ou mettre à jour la base de données, le manuscrit de PHP devra d'abord se relier au serveur de MySQL et indiquer quelle base de données dans le serveur de MySQL à opérer.
Le mysql_connect () et des fonctions de mysql_select_db () sont fournis à cette fin. Afin de se relier au serveur de MySQL, le nom de serveur/adresse ; un username ; et un mot de passe valide est exigé. Une fois qu'un raccordement est réussi, la base de données doit être indiquée.
Les 2 extraits suivants de code illustrent comment effectuer le raccordement de serveur et le choix de base de données :
@mysql_connect (« [servername] », « [username] », « [mot de passe] ») ou matrice (« ne peut pas se relier au DB ! ») ;
@mysql_select_db (« [databasename] ») ou matrice (« ne peut pas choisir le DB ! ») ;
@ l'opérateur est habitué pour supprimer tous les messages d'erreur que le mysql_connect () et les fonctions de mysql_select_db () peuvent produire si une erreur se produisait. La fonction de matrice () est employée pour finir l'exécution de manuscrit et pour montrer un message d'erreur fait sur commande.
Exécution des rapports de SQL contre une base de données de MySQL
Une fois que le raccordement et le choix de base de données est avec succès effectué, le manuscrit de PHP peut maintenant procéder opérer la base de données en utilisant des rapports standard de SQL. La fonction de mysql_query () est employée pour exécuter des rapports standard de SQL contre la base de données. Dans l'exemple suivant, le manuscrit de PHP questionne une table appelée le tbl_login dans la base de données précédemment choisie pour déterminer si une paire d'username/mot de passe fournie par l'utilisateur est valide.
Prétention :
La table de tbl_login a 3 colonnes appelées ouverture, mot de passe, last_logged_in. La colonne de last_logged_in stocke l'heure que l'utilisateur pour la dernière fois noté dans le système./variable de $username et de $passwd devrait correctement être placé par la forme d'ouverture par la méthode de POTEAU. Afin de cet exemple, nous codons manuellement it.$username = « John » ; $passwd = « mypassword » ; /nous produisons d'un rapport CHOISI de SQL pour execution.$sql= " CHOISISSONS * À PARTIR du tbl_login OÙ ouverture = « ». $username. « » ET mot de passe = « « . $passwd. » » « ; /exécuter le rapport de SQL contre la base de données actuellement choisie./résultats sera stocké dans le $r variable.$r = mysql_query ($sql) ; /après la commande de mysql_query () s'exécute, la variable de $r est examiné pour déterminer du mysql_query () était avec succès executed.if (! $r) {$err=mysql_error () ; copie $err ; sortie () ;}/si tout allait bien, contrôle si la question renvoyait un résultat - c.-à-d. si la paire d'username/mot de passe était trouvée dans la base de données. Les mysql_affected_rows () que la fonction est employée à cette fin./mysql_affected_rows () renverra le nombre de rangées dans la table de base de données qui a été affectée par le dernier queryif (mysql_affected_rows () paire d'username/mot de passe de ==0) {la copie « est inadmissible. Svp essai encore. » ;}autrement {/si réussi, lu dehors la dernière fois entrée dans une variable de $last pour l'affichage à l'utilisateur $row=mysql_fetch_array ($r) ; $last=$row [« last_logged_in »] ; ouverture d'impression « réussie. Vous avez pour la dernière fois entré à ». $last. ». » ;}
L'exemple ci-dessus a démontré comment un rapport CHOISI de SQL est exécuté contre la base de données choisie. La même méthode est employée pour exécuter d'autres rapports de SQL (par exemple MISE À JOUR, INSERTION, EFFACEMENT, etc.) contre la base de données en utilisant le mysql_query () et des fonctions de mysql_affected_rows ().
Les dossiers plats sont seulement faisables dans très bas aux sites Web de bas volume car les dossiers plats ont 3 faiblesses inhérentes :
• L'incapacité de classer les données. Ceci le rend nécessaire de lire potentiellement toutes données séquentiellement. C'est un problème important s'il y a beaucoup de disques dans le dossier plat parce que le temps requis pour lire le dossier plat est proportionné au nombre de disques dans le dossier plat.
• L'incapacité de commander efficacement l'accès par des utilisateurs aux données
• Le stockage inefficace des données. Dans la plupart des cas, les données ne seraient pas chiffrées ou n'ont pas été comprimées car ceci aggraverait le problème No. 1 ci-dessus
L'alternative qui est, à mon avis, la seule méthode faisable, est de stocker les données dans une base de données. Une des bases de données les plus répandues est en service MySQL. Des données qui sont stockées dans une base de données peuvent facilement être classées, contrôlées et stockées efficacement. Sans compter que celle, la plupart des bases de données fournissent également une suite d'accompagner les utilités qui permettent à l'administrateur de base de données de maintenir la base de données - par exemple, protection et restauration, etc.
Les sites Web PHP employant préétablir approprié très bien à la base de données de MySQL car PHP a une coutume et un module intégré de MySQL qui communique très efficacement avec MySQL. PHP peut également communiquer avec MySQL par l'ODBC standard car MySQL est ODBC-conforme, cependant, ce ne sera pas aussi efficace qu'utilisant le module fait sur commande de MySQL pour PHP.
Le reste de cet article est un cours d'instruction sur la façon dont employer PHP :
• Relier à une base de données de MySQL
• Exécuter les rapports standard de SQL contre la base de données de MySQL
Commencer une session avec MySQL
Avant que le manuscrit de PHP puisse communiquer avec la base de données pour questionner, insérer ou mettre à jour la base de données, le manuscrit de PHP devra d'abord se relier au serveur de MySQL et indiquer quelle base de données dans le serveur de MySQL à opérer.
Le mysql_connect () et des fonctions de mysql_select_db () sont fournis à cette fin. Afin de se relier au serveur de MySQL, le nom de serveur/adresse ; un username ; et un mot de passe valide est exigé. Une fois qu'un raccordement est réussi, la base de données doit être indiquée.
Les 2 extraits suivants de code illustrent comment effectuer le raccordement de serveur et le choix de base de données :
@mysql_connect (« [servername] », « [username] », « [mot de passe] ») ou matrice (« ne peut pas se relier au DB ! ») ;
@mysql_select_db (« [databasename] ») ou matrice (« ne peut pas choisir le DB ! ») ;
@ l'opérateur est habitué pour supprimer tous les messages d'erreur que le mysql_connect () et les fonctions de mysql_select_db () peuvent produire si une erreur se produisait. La fonction de matrice () est employée pour finir l'exécution de manuscrit et pour montrer un message d'erreur fait sur commande.
Exécution des rapports de SQL contre une base de données de MySQL
Une fois que le raccordement et le choix de base de données est avec succès effectué, le manuscrit de PHP peut maintenant procéder opérer la base de données en utilisant des rapports standard de SQL. La fonction de mysql_query () est employée pour exécuter des rapports standard de SQL contre la base de données. Dans l'exemple suivant, le manuscrit de PHP questionne une table appelée le tbl_login dans la base de données précédemment choisie pour déterminer si une paire d'username/mot de passe fournie par l'utilisateur est valide.
Prétention :
La table de tbl_login a 3 colonnes appelées ouverture, mot de passe, last_logged_in. La colonne de last_logged_in stocke l'heure que l'utilisateur pour la dernière fois noté dans le système./variable de $username et de $passwd devrait correctement être placé par la forme d'ouverture par la méthode de POTEAU. Afin de cet exemple, nous codons manuellement it.$username = « John » ; $passwd = « mypassword » ; /nous produisons d'un rapport CHOISI de SQL pour execution.$sql= " CHOISISSONS * À PARTIR du tbl_login OÙ ouverture = « ». $username. « » ET mot de passe = « « . $passwd. » » « ; /exécuter le rapport de SQL contre la base de données actuellement choisie./résultats sera stocké dans le $r variable.$r = mysql_query ($sql) ; /après la commande de mysql_query () s'exécute, la variable de $r est examiné pour déterminer du mysql_query () était avec succès executed.if (! $r) {$err=mysql_error () ; copie $err ; sortie () ;}/si tout allait bien, contrôle si la question renvoyait un résultat - c.-à-d. si la paire d'username/mot de passe était trouvée dans la base de données. Les mysql_affected_rows () que la fonction est employée à cette fin./mysql_affected_rows () renverra le nombre de rangées dans la table de base de données qui a été affectée par le dernier queryif (mysql_affected_rows () paire d'username/mot de passe de ==0) {la copie « est inadmissible. Svp essai encore. » ;}autrement {/si réussi, lu dehors la dernière fois entrée dans une variable de $last pour l'affichage à l'utilisateur $row=mysql_fetch_array ($r) ; $last=$row [« last_logged_in »] ; ouverture d'impression « réussie. Vous avez pour la dernière fois entré à ». $last. ». » ;}
L'exemple ci-dessus a démontré comment un rapport CHOISI de SQL est exécuté contre la base de données choisie. La même méthode est employée pour exécuter d'autres rapports de SQL (par exemple MISE À JOUR, INSERTION, EFFACEMENT, etc.) contre la base de données en utilisant le mysql_query () et des fonctions de mysql_affected_rows ().
Article Source: http://www.articleset.com

You are welcome to publish or reprint this article free of charge, provided:
- you include the entire article, unchanged, including the "About The Author" box
- all hyperlinks remain active, including the bottom ArticleSet.com link (does not apply to print publications)
- you agree not to hold the authors nor ArticleSet.com liable for any loss profits, expenses, or any other damages resulting from the use or misuse of articles published on this website