TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 | |
| Pseudo | Commentaire |
|---|---|
| Page : 1 | |
NoRBiUM
|
# Posté le 28/08/2008 à 19:14:05 - Ce membre a mis la note : 11 |
![]() Groupe : Membres |
Tuto moyen ... A mon avis si on veut réellement apprendre la POO on doit passer par PDO. Ce tuto est déjà meilleur : http://www.siteduzero.com/tutoriel-3-34790-pdo-interface-d-acces-aux-bdd.html. Et je précise qu'il n'y a aucune classe préparé. De plus il me semble qu'avec php 6 les fonctions du type mysql_connect etc ... ne pourront plus être utilisés. Pour conclure : Passer par PDO serait vachement plus utile et plus facile pour apprendre réellement la POO... |
Matt1113
|
# Posté le 13/08/2008 à 14:42:15 - Ce membre a mis la note : 18 |
Vive la glandouille![]() Groupe : Membres |
Très bon tuto, facil à comprendre, complet pour quelqu'un qui ne fait pas de la grosse production. 18. |
Le Zéro
|
# Posté le 15/07/2008 à 16:02:09 - Ce membre a mis la note : 20 |
I'm a ZerO![]() Groupe : Membres |
Très bon tuto. Je ne comprends pas la note de 13 ! Vous n'êtes pas obligés de passer à Mysqli mais pour les sites ayant des architetures objet, c'est comme même très pratique. Je note 20 pour remonter mais je pense qu'il vaut 17... Avancement de mon site web, MyFrog.fr : |||||||||| Le Zéro |
Laurent
|
# Posté le 08/07/2008 à 07:40:29 - Ce membre n'a pas mis de note |
![]() Groupe : Membres |
J'ai vu plus haut un commentaire qui demandait : exécuter plusieurs requete SQL dans une seule fonction, kossé ça donne? (traduction : ça sert à quoi?) Je peux donner un exemple que j'ai eu récemment à voir dans mon travail : Nous avions conçu un module d'approbation qui permettait à l'admin de pouvoir valider n'importe quelle modification au site. Pour ça, nous avons conçu un système qui stockait la requête dans la base de données (on stockait du SQL dans un champs texte) et on exécutait la requête lorsque l'admin appuyait sur le bouton "Autoriser". Pour les cas où il faut éxécuter plusieurs requête pour un seul update, c'est très pratique. Je pense notamment lorsque les données était dans plusieurs tables, par exemple quand un utilisateur mettais à jour ses styles musicaux favoris (table de jointure) et son adresse (table d'utilisateur). Sinon il faut plusieurs manipulation ésotérique de chaine de caractère (explode avec ; et vous êtes mieux de priez pour que votre utilisateur n'ait pas mis de ; quelque part dans ses infos) pour pouvoir exécuter toutes les dites requêtes... Ce n'est pas impossible, loin de là, mais quand on il faut remettre le projet le lendemain sinon le boss vous engueule, disons qu'on préfère les trucs simples et rapides. Sinon, en ce qui a trait au tuto, je suggérais un ajout : une petite le pattern Singleton. C'est tellement vital (en tout cas pour moi ce l'est, je ne sais pas pour les autres) quand on travaille avec les objets représentant les bases de données. Surtout quand on est rendu au plus profond de nos objets de couche Business Logic et qu'il faut passer éternellement dans chaque constructeur de CHAQUE objet une référence vers ce ****** d'objet mysqli. Alors que quand on a juste à faire $sql = YouyouxMysqli::instance() pour obtenir notre objet, c'est tellement plus agréable. Je me rappelle que je pleurais de joie quand je l'ai appris tellement je suait pour faire du code orienté objet avec Mysqli. (Youyoux, c'est le nom du site Web sur lequel on boss, mais je ne le vous recommande pas trop pour l'instant...) J'aurais personnellement lancé une exception en cas d'erreur, mais je reconnais que c'est loin d'être tous les zéros qui savent ce que c'est J'aimerais finir en ajoutant qu'il y a l'objet PDO fait également un excellent remplacement de Mysqli si vous voulez vraiment une abstraction de la base de données. Vous aurez probablement à réécrire les requêtes SQL anyway à cause des différences de syntaxe entres les bases de données, mais il retourne de sympathiques objet PDOStatement qui pourront être envoyés sans encombre vers vos autres classes (si le coeur vous en dit). Il suffira de placer toutes vos requête dans des classes sans état dans une couche "DataLink" qui ne s'occupe que de faire les requête et de retourner les PDOStatement. Ensuite vos objets de Business Logic peuvent utiliser les dits PDOStatement pour créer leur état. Assez pratique, très orienté objet et très flexible. Si on change de système de base de données, il suffit de créer une nouvelle implémentation de vos interface mais avec des requêtes fait pour le nouveau système. Et comme vos PDOStatement resteront les mêmes, tout sera bien dans le meilleur des mondes. Be kind, for everyone you meet is fighting a hard battle. (Platon) Laurent |
SpaceFox
|
# Posté le 07/07/2008 à 22:17:36 - Ce membre n'a pas mis de note |
|
Ton code existe deja, en mieux Groupe : Membres |
Sois un minimum honnête, si y'a des imprécisions signale-les correctement (et tu es capable de le faire, tu l'as fait) ; si le tuto ne te plaît pas parce que ce n'est pas ce que tu voulais et qu'il ne correspond pas à ta manière de coder, ben c'est pas la peine de te plaindre. De là à dire que c'est inutile... je peux te certifier le contraire, si tu savais les horreurs que j'ai vu (et en entreprise, et en production). |
Kazou_
|
# Posté le 07/07/2008 à 20:59:17 - Ce membre a mis la note : 3 |
|
Groupe : Membres |
Afin d'éviter de finir dans un dialogue de sourd, je vais éviter d'enfoncer le clou. Ayant de profonds désaccordes avec ta manière de pensé et n'ayant pas envie de t'agresser pour autant, je caractériserais simplement ton tutoriel de : "aussi inutile d'imprécis, je ne le recommanderais pas". |
SpaceFox
|
# Posté le 07/07/2008 à 12:55:02 - Ce membre n'a pas mis de note |
|
Ton code existe deja, en mieux Groupe : Membres |
Citation : Alp Des fautes de langage, des imprécisions (voir des erreurs), bref vas relire des cours/documentations/articles et reviens écrire ensuite. Le tuto a été corrigé, re-corrigé et z-corrigé ; je veux bien les fautes de langages restantes.Evidemment, c'est facile de dire qu'il y a des fautes / erreurs / imprécisions sans donner lesquelles, mais je suppose que tu as trop à faire pour me signaler lequelles afin que je puisse les corriger ? Parce que si elles sont là, c'est que je ne les ai pas vues. Citation : Kazou A la vue du titre du tutoriel (désolé je ne peut pas parler de cours) Ça tombe bien, je n'ai pas fait un cours mais un tutoriel. Je voudrais faire un cours, je le ferais pas ici, sur ce site, pour commencer.Citation : Kazou Ici on ne parle que de fonctions de base qui n'apporte rien par rapport à l'extension mysql. PHP précisait qu'on était sensé utiliser MySQLi et plus MySQL (l'extension), c'est une raison suffisante en soi.Citation : Kazou Le rôle d'un SGBD étant le contrôle d'intégrité il peut s'avérer que ce contrôle soit trop strict et bloquant dans nos actions. On utilise alors les transactions afin de valider (commit) les opérations d'une seule traite sans contrôle intermédiaire. Il n'y a donc strictement aucun rapport avec la couche d'accès aux données (ici mysqli). ? Pardon ? Je vois pas le rapport entre ta phrase et mon tuto. À moins que tu ne fasse allusion à la conclusion ? Essaie de balancer une transaction avec l'extension standard, tu verras le problème (et si ça marche, je veux bien la config serveur).Citation : Kazou Ce n'est pas parce qu'on s'adresse a des débutants qu'on doit se permettre de faire des amalgames de tout, au contraire. Eh bien, tu me montres ces amalagmes que je puisse les corriger ?Comment prétendre donner les bases a quelqu'un avec des abus de langages ou en tenant des propos plus que flou ? Citation : SpaceFox Citation : SpaceFox Là, tu m'excusera mais ce genre de commentaire est du foutage de gueule intégral.Oui. Le reste se fait exactement comme vous le faisiez avec la bibliothèque SQL « standard ». Connait pas Citation : Kazou Citation : SpaceFox Désolé, mon grand, j'arrive pas à trouver plus clair comme phrase.Dans certains cas, ce qui était une fonction devient un attribut, et non pas une méthode. Donc, si vous laissez les parenthèses à la fin du nom, ça buggera, et le message d'erreur n'est pas très clair. Comprend pas D'un autre côté, tu dois être un peu con pour ne pas comprendre ça alors que ça a été validé, donc compris, et que personne d'autre ne s'est plaint avant toi. Remarque, si tu la prends hors contexte, c'est normal, cette pharse s'intègre dans un paragraphe, qui aide fortement à la comprendre. Citation : Kazou Citation : SpaceFox Je crains que ton commentaire ne soit en grande partie nul et non avenu, vu que tu commence à te plaindre que le tuto n'est pas sur le sujet que tu veux. Eh bien si tu veux un tuto sur le mapping relationnel-objet, ben tu le fais, toi. C'est pas du tout l'objet de mon tuto.J'aimerais que ceux qui n'ont pas aimé (y'en a vu la note) m'expliquent, que je puisse améliorer Dans ce cas évite de parler de ce que tu ne connait pas. Allez, une fois pour toute, en gros et en rouge parce qu'apparemment y'en a qu'on du mal. Ce tuto a été fait pour deux raisons principales. 1- Parce qu'il existe une profusion énorme de tutos sur le thème « utilisez SQL en POO » et qui proposent des classes « maison », ce qui est ridicule parce que c'est ré-inventer la poudre dans 80 % des cas. Quitte à faire ses connexions SQL en POO, autant le faire correctement. 2- Parce que PHP précisait que l'extension MySQL devait être remplacée par MySQLi. Maintenant, ils ne le précisent plus aussi clairement, et de toutes façons les deux extensions devraient être remplacées dans PHP6, mais avant qu'on le voie sur les hébergeurs, celui-là... Donc, arrêtez de faire chier avec « bahhh, on voit pas de fonctions avancées », ou « T'es une merde, tu donnes pas de bons arguments pour utiliser ton truc ». Ce n'est pas le sujet du tuto. C'est tout. Point final. Pour finir, un point pour Kazou, effectivement ma phrase sur les guillemets n'est pas claire, je connais parfaitement la différence (et c'est pour ça que j'utilise les guillements simples, d'ailleurs), c'est que dans mes exemples que ça change rien. Je rends la phrase plus claire. |
Kazou_
|
# Posté le 06/07/2008 à 03:30:44 - Ce membre a mis la note : 3 |
|
Groupe : Membres |
Bonjour Citation : SpaceFox ce tuto part du principe que vous voulez faire du SQL en utilisant la POO, c'est même le sujet. Si c'est faire de la POO pour faire de la POO ça ne sert strictement à rien. A la vue du titre du tutoriel (désolé je ne peut pas parler de cours), je m'attendais à ce qu'on aborde des notions comme le mapping relationnel-objet qui propose une conception objet permettant d'apporter une véritable valeur a la conception d'une application. Ici on ne parle que de fonctions de base qui n'apporte rien par rapport à l'extension mysql. Le rôle d'un SGBD étant le contrôle d'intégrité il peut s'avérer que ce contrôle soit trop strict et bloquant dans nos actions. On utilise alors les transactions afin de valider (commit) les opérations d'une seule traite sans contrôle intermédiaire. Il n'y a donc strictement aucun rapport avec la couche d'accès aux données (ici mysqli). Ce n'est pas parce qu'on s'adresse a des débutants qu'on doit se permettre de faire des amalgames de tout, au contraire. Comment prétendre donner les bases a quelqu'un avec des abus de langages ou en tenant des propos plus que flou ? Citation : SpaceFox Oui. Le reste se fait exactement comme vous le faisiez avec la bibliothèque SQL « standard ». Connait pas Citation : SpaceFox Dans certains cas, ce qui était une fonction devient un attribut, et non pas une méthode. Donc, si vous laissez les parenthèses à la fin du nom, ça buggera, et le message d'erreur n'est pas très clair. Comprend pas Citation : SpaceFox J'aimerais que ceux qui n'ont pas aimé (y'en a vu la note) m'expliquent, que je puisse améliorer Dans ce cas évite de parler de ce que tu ne connait pas. Au passage je voudrais souligner : Citation : SpaceFox J'utilise des guillemets simples (') pour délimiter mes chaînes de caractères, mais rien ne vous empêche d'utiliser les guillemets doubles (") si vous préférez, c'est pareil ! Ce n'est pas parce que dans tes exemple ça ne changerait rien que c'est strictement la même chose. Met toi à la place de quelqu'un qui attaque la programmation web avec php (de tout façon je ne voit pas à quel autre public ce tutoriel pourrait s'adresser), a tous les coups il pensera que ' est strictement équivalent a ". Et c'est a cause de ce genre de tutoriel ou l'on retrouve des concaténation barbar en plein milieux des codes sources. Avant d'enseigner apprend : http://pbnaigeon.developpez.com/tutori [...] he-guillemet/ Bonne chance ... |
Alp
|
# Posté le 06/07/2008 à 02:44:38 - Ce membre n'a pas mis de note |
|
Groupe : Membres |
Des fautes de langage, des imprécisions (voir des erreurs), bref vas relire des cours/documentations/articles et reviens écrire ensuite.
|
Elwood_Brothers
|
# Posté le 05/07/2008 à 23:26:02 - Ce membre n'a pas mis de note |
2+2=5 XD![]() Groupe : Membres |
J'ai bien aimé ton tuto, surtout le fait qu'il soit un bel exemple de ce que l'on peut faire en POO avec PHP (ce qui restait assez floue pour moi). Je ne te mettrai néanmoins pas de note, n'ayant pas assez de connaissance en ce domaine pour juger. Merci. ![]() |
Pixool
|
# Posté le 30/06/2008 à 09:42:15 - Ce membre a mis la note : 18 |
Graph & Prog![]() Groupe : Membres |
merci pour ce tutoriel très intéressant surtout sur la partie de la gestion des erreurs
|
SpaceFox
|
# Posté le 22/05/2008 à 22:15:20 - Ce membre n'a pas mis de note |
|
Ton code existe deja, en mieux Groupe : Membres |
Le pire, c'est que moi non plus je suis pas fan de la POO en PHP (vu que par le concept de script, la plupart des objets ne servent qu'avec une instance, c'est un peu crétin). Ou alors, faut avoir un vrai gros projet pour que ça soit intéressant. Mais le concept était que tant qu'à faire de la POO en PHP, autant le faire correctement... |
zancdar
|
# Posté le 15/05/2008 à 16:57:35 - Ce membre n'a pas mis de note |
|
Va donc te faire fouetter Groupe : Bannis |
Hum créer un objet juste pour des requêtes oO J'ai jamais été fan de la POO en PHP... quoi que MYSQLi parrais interessant, je ferais des tests plus tard. LEPV |
WaR TeaM
|
# Posté le 11/03/2008 à 17:48:06 - Ce membre a mis la note : 20 |
La mort doit être vécu !![]() Groupe : Membres |
Merci pour ce tuto ![]() Un petit 20 pour faire remonter la moyenne ![]() 1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20
Codeur PHP/SQL ![]() |
rocawear
|
# Posté le 05/03/2008 à 10:28:40 - Ce membre a mis la note : 20 |
|
WebDev - Développeur web Groupe : Membres |
Bonjour, J'ai très apprécié ce tutoriel pour le développement de mon nouveaux projet 20/20 Merci beaucoup
|
SpaceFox
|
# Posté le 03/03/2008 à 00:45:01 - Ce membre n'a pas mis de note |
|
Ton code existe deja, en mieux Groupe : Membres |
J'aimerais que ceux qui n'ont pas aimé (y'en a vu la note) m'expliquent, que je puisse améliorer ![]() Sinon, pour clore le débat une bonne fois pour toute : ce tuto part du principe que vous voulez faire du SQL en utilisant la POO, c'est même le sujet. Après, on peut disserter et même faire un tuto sur la meilleur manière d'accéder à SQL (en fonction des besoins, etc) ; mais là c'est un autre débat. Edit : débat certes intéressant, mais sur un topic dédié. Si quelqu'un est motivé... |
Anonyme
|
# Posté le 29/02/2008 à 23:32:39 - Ce membre n'a pas mis de note |
|
Groupe : |
Merci de la précision pour les procédures stockées. ![]() Pour PDO par contre, bof, c'est vraiment foireux aussi ce truc. Déjà, ça ne change rien au problème de la syntaxe qui varie (un peu ou beaucoup) entre les différents SGBDR, ce qui fait qu'au final, même en utilisant PDO, il y a de grandes chances de devoir se retaper une bonne partie des requêtes. Ensuite, PDO souffre du même autre défaut que toutes les couches d'abstraction SQL : les spécificités des SGBDR. Ce que l'on fait en une requête X sur un SGBDR se fera peut-être en trois requêtes U, V et T sur un autre, ce qui fait qu'au final on devra encore tout revoir. Personnellement, je trouve que la meilleure chose à faire pour passer aisément d'un SGBDR à un autre est d'abstraire complètement la couche des données (incluant la récupération, l'insertion, etc.). Bien sûr avec cette méthode on devra également réécrire cette couche, ce qui est aussi chiant qu'avec PDO et les autres couches d'abstractions SQL. Toutefois, il y a deux avantages que je trouve majeurs : - Comme on sépare la couche des données du restes, on peut changer cette couche sans aucun impact sur tout le reste du code puisque la couche des données envoie des structures (array, objet, type primitifs) utilisable directement par PHP et indépendant de tout SGBDR. - C'est plus honnête, on ne prétend pas qu'on peut abstraire les SGBDR, ce qui est impossible à faire complètement, y aura toujours un SGBDR pour faire chier. Abstraire cette couche permet même de passer de l'utilisation d'un SGBDR à l'utilisation de fichiers sans demander aucune modification sur le reste du code. [Au passage, j'ai pas mis de note à ton tuto. Les tutos évoluent, pas les notes, les notes ne veulent donc rien dire] |
Draeli
|
# Posté le 29/02/2008 à 21:48:22 - Ce membre n'a pas mis de note |
![]() Groupe : Membres |
Alors il faut savoir que les procédures stockés marchent avec l'extension mysql MAIS ne sont pas supportés selon la syntaxe commune (on ouvre pas de bloque comme en tant normal) donc si ca reste effectivement possible c'est à éviter car difficilement portable par la suite (et de toute façon trés mal géré au niveau des pointeurs internes des méthodes de lecture même si cela reste possible en bidouillant). Pour les transactions, l'extension mysql les gèrent tout à fais correctement, par contre faut il encore utiliser un moteur de stockage qui lui supporte les transactions ![]() La documentation PHP comme celle de MySQL comportent de rares erreurs voir des contres sens, malheureusement on ne peut rien y faire sinon tester par soit même pour ce rendre compte de ce qui marche réellement en cas de doute. Dans ce cas je pense que la tournure de la phrase induit en erreur. Pour ma part, à pars les procédures stockés ou je dois bidouiller, tous le reste semble marcher correctement avec l'extension mysql. Pour les requêtes multiples, on obtient la même chose avec des transactions, sachant que l'optimisation des requêtes est soumis aux configurations côté serveur et drivers de la base de données donc même si en théorie faire des transactions permet d'optimiser, ca n'est pas une véritée à 100% (même si pour ma part je le considère dans les faits quasi comme tel). Pour en revenir au tuto, même si l'extension mysqli a le mérite d'exister, l'avenir est à l'extension PDO qui est une couche d'abstraction au base de données (à savoir qu'on ne s'occupe plus de savoir derrière quel SGBD est derrière, on fait simplement les requêtes et le drivers du SBGD fait les adaptations (ca c'est pour la théorie car dans les faits ca pose quand même pas mal de soucis ... )). Indépendant : Jedi PHP (Certifié Zend PHP) - Jedi MySQL (Certifié MySQL Core) - Jedi CSS Le côté obscur de la force bientôt rejoins ai-je ! - A bove ante, ab asino retro, a stulto undique caveto - |
Anonyme
|
# Posté le 28/02/2008 à 20:47:54 - Ce membre n'a pas mis de note |
|
Groupe : |
Citation : SpaceFox Citation : Haku Ce n'est pas propre à MySQLi, toutes les couches d'abstractions SQL permettent cela. Merci de ne pas me faire dire ce que ne n'ai pas dit. En l'occurence, je ne dis pas que seul MySQLi peut le faire, mais que MySQLi peut le faire et pas MySQL (grâce à la gestion type "objet"). Ai-je dit que tu avais dit cela ? J'ai juste commenté. Et ce n'est pas grâce au modèle Objet qu'on peut faire cela, c'est uniquement dû à l'abstraction, on peut très bien arriver au même résultat avec des fonctions. Citation : SpaceFox Citation : Haku Et cette remarque dans la doc est bien stupide. Les fonctions mysql_*() permettent d'utiliser toutes les possibilités de MySQL et ce même si c'est une version plus récente que 4.1.0.. Si on commence à partir du principe que la doc est fausse... Je ne suis pas certain (mais j'ai la flemme de vérifier) que l'extension MySQL peut vraiement gérer les histoires de transactions ou de procédures stockées correctement (en particulier le problème de délimiteur). Tout ceci serait à tester Je ne dis pas que la doc est fausse, je dis qu'elle est parfois assez légère dans ses affirmations et que certaines phrases ont une fâcheuse tendance à mal se faire comprendre, comme celle qui parle du non-support des fonctions de MySQL >= 4.1 avec l'extension MySQL. Pour les transactions, je peux t'assurer que ça fonctionne : Code : PHP - Afficher / masquer les numéros de ligne
Sortie : Code : Console - Afficher / masquer les numéros de ligne string(1) "0" string(1) "1" string(1) "0"
Par contre pour les procédures stockée, je n'arrive à rien d'autre qu'une erreur de syntaxe tant avec l'extension MySQL que l'extension MySQLi. Code : SQL - Afficher / masquer les numéros de ligne
Code : PHP - Afficher / masquer les numéros de ligne
Citation : SpaceFox Citation : Haku Si le zéro de base ne sait pas ce qu'est une transaction, ce n'est pas ce que la doc de MySQLi en dit [...] qui l'aidera à savoir ce que c'est, et encore moins à savoir l'utiliser. Si le zéro ne de base ne sait pas ce qu'est une transaction, il va cherche dans la doc de MySQL (le serveur, pas l'extension PHP) ou mieux, sur des cours de SQL ce que c'est. Vu qu'une transaction est une commande SQL, il n'y a pas de raison de trouver ça dans la doc PHP... Mea culpa, j'ai mal interprété une de tes phrases. Citation : SpaceFox Citation : Haku Je m'en doute bien, mais au final, MySQLi ne permet rien de plus que MySQL, c'est juste que cette extension offre plus de raccourcis. Elle offre aussi la possibilité de faire des objets et tout ce qui va avec pour gérer SQL. C'est dans le titre. Ce qui n'est pas spécialement utile vu ce que beaucoup (dont moi et ce tuto) en fait. Citation : SpaceFox Citation : Haku Mais je ne vois toujours pas l'intérêt d'envoyer plusieurs requêtes en un seul appel * Pour alléger / éclaircir certains codes * Certaines requêtes ne marchent que si on ne les fait pas en une seule transaction (création de procédures stockées par exemple) Tu peux me donner un exemple de code allégé/éclairci ? |
SpaceFox
|
# Posté le 28/02/2008 à 19:08:59 - Ce membre n'a pas mis de note |
|
Ton code existe deja, en mieux Groupe : Membres |
Citation : Haku Ce n'est pas propre à MySQLi, toutes les couches d'abstractions SQL permettent cela. Merci de ne pas me faire dire ce que ne n'ai pas dit.En l'occurence, je ne dis pas que seul MySQLi peut le faire, mais que MySQLi peut le faire et pas MySQL (grâce à la gestion type "objet"). Citation : Haku Et cette remarque dans la doc est bien stupide. Les fonctions mysql_*() permettent d'utiliser toutes les possibilités de MySQL et ce même si c'est une version plus récente que 4.1.0. Si on commence à partir du principe que la doc est fausse...Je ne suis pas certain (mais j'ai la flemme de vérifier) que l'extension MySQL peut vraiement gérer les histoires de transactions ou de procédures stockées correctement (en particulier le problème de délimiteur). Tout ceci serait à tester. Citation : Haku Si le zéro de base ne sait pas ce qu'est une transaction, ce n'est pas ce que la doc de MySQLi en dit [...] qui l'aidera à savoir ce que c'est, et encore moins à savoir l'utiliser. Si le zéro ne de base ne sait pas ce qu'est une transaction, il va cherche dans la doc de MySQL (le serveur, pas l'extension PHP) ou mieux, sur des cours de SQL ce que c'est.Vu qu'une transaction est une commande SQL, il n'y a pas de raison de trouver ça dans la doc PHP... Citation : Haku Je m'en doute bien, mais au final, MySQLi ne permet rien de plus que MySQL, c'est juste que cette extension offre plus de raccourcis. Elle offre aussi la possibilité de faire des objets et tout ce qui va avec pour gérer SQL. C'est dans le titre.Citation : Haku Mais je ne vois toujours pas l'intérêt d'envoyer plusieurs requêtes en un seul appel
---------- Citation : Exorta c'est à éviter quand on s'adresse à des zéros (comme c'est censé être le cas ;p); après ça peut donner du code non commenté, qui est illisible à la relecture. J'ai supprimé les commentaires parce que je pense le bloc suffisemment clair pour être compris en ayant le détail juste au-dessus.Et comme ça, ça évite que les zéros copient / collent bêtement du code sans rien y avoir compris. Là, s'ils veulent faire du code propre, ils referont leur truc en s'inspirant du mien, avec leur convention de nommage, leurs habitudes et leurs commentaires. |
Anonyme
|
# Posté le 28/02/2008 à 17:55:23 - Ce membre n'a pas mis de note |
|
Groupe : |
Citation : SpaceFox Non, la première raison est que ça permet de faire un code beaucoup plus facile à modifier / maintenir après, notamment si on veut changer quelque chose au comportement SQL. Extrêmement pratique lors du développement et du debug. Ce n'est pas propre à MySQLi, toutes les couches d'abstractions SQL permettent cela. Citation : SpaceFox La seconde raison, c'est celle donnée dans la doc PHP : Citation : La doc PHP sur l'extension MySQL Bien que cette extension MySQL soit compatible avec MySQL 4.1.0 et supérieur, elle ne supporte pas les fonctionnalités supplémentaires que cette version fournit. Pour cela, utilisez plutôt l'extension MySQLi. Et cette remarque dans la doc est bien stupide. Les fonctions mysql_*() permettent d'utiliser toutes les possibilités de MySQL et ce même si c'est une version plus récente que 4.1.0. D'ailleurs pour exploiter toutes les possibilités de MySQL on n'a besoin que de quelques fonctions :
Citation : SpaceFox Toutefois, vu que le zéro de base ne sait pas ce que sont ces fonctionnalités supplémentaires... Si le zéro de base ne sait pas ce qu'est une transaction, ce n'est pas ce que la doc de MySQLi en dit : Citation : Doc sur mysqli_commit mysqli->commit() — Valide la transaction courante Qui l'aidera à savoir ce que c'est, et encore moins à savoir l'utiliser. Citation : SpaceFox En fait je suis en train de m'apercevoir que c'est la phrase qui n'est pas claire. C'est pas un argument pour utiliser MySQLi (vu que c'est la conclusion), c'est une démonstration de ses possibilités. Je m'en doute bien, mais au final, MySQLi ne permet rien de plus que MySQL, c'est juste que cette extension offre plus de raccourcis. Citation : SpaceFox Pour ce qui est de grouper des requêtes, je ne sais pas avec mysql_*(), mais la syntaxe : Code : PHP - Afficher / masquer les numéros de ligne
Ne fonctionne pas ou ne donne pas toujours les résultats attendus. mysqli_query() ne permet pas non plus d'envoyer plusieurs requêtes, mais mysqli_multi_query() oui. Et en effet, il n'y a pas de fonction toute faites pour MySQL, mais elle est relativement simple à faire. Mais je ne vois toujours pas l'intérêt d'envoyer plusieurs requêtes en un seul appel, ce n'est pas comme si ça allait changer quoi que ce soit au temps nécessaire à l'exécution de ces requêtes. |
Exorta
|
# Posté le 28/02/2008 à 13:45:33 - Ce membre n'a pas mis de note |
|
WGT.W3 Webby Groupe : Membres |
Salut, c'est un bon tutorial je pense. Par contre y'a juste une phrase qui me "chagrine": "Sans les commentaires, parce ça n'a pas grand intérêt." Même si, pris dans le contexte, on comprend bien que tu veux dire que tous les commentaires que tu as mis précédemment surchargent le code, c'est à éviter quand on s'adresse à des zéros (comme c'est censé être le cas ;p); après ça peut donner du code non commenté, qui est illisible à la relecture. Enfin c'est un avis
Webmaster of WGTour. |
SpaceFox
|
# Posté le 28/02/2008 à 11:48:13 - Ce membre n'a pas mis de note |
|
Ton code existe deja, en mieux Groupe : Membres |
Effectivement, c'est EasyPHP2 et pas EasyPHP5 (encore que depuis le temps, ils devraient en être à la 2.5 )Mais je vais attendre un peu d'autres éventuels retours pour éviter d'avoir à le faire revalider juste pour ça. Citation : `Haku Si c'est la pour toi les raisons principales pour utiliser mysqli, c'est un peu n'importe quoi. Non, la première raison est que ça permet de faire un code beaucoup plus facile à modifier / maintenir après, notamment si on veut changer quelque chose au comportement SQL. Extrêmement pratique lors du développement et du debug. La seconde raison, c'est celle donnée dans la doc PHP : Citation : La doc PHP sur l'extension MySQL Bien que cette extension MySQL soit compatible avec MySQL 4.1.0 et supérieur, elle ne supporte pas les fonctionnalités supplémentaires que cette version fournit. Pour cela, utilisez plutôt l'extension MySQLi. Toutefois, vu que le zéro de base ne sait pas ce que sont ces fonctionnalités supplémentaires... En fait je suis en train de m'apercevoir que c'est la phrase qui n'est pas claire. C'est pas un argument pour utiliser MySQLi (vu que c'est la conclusion), c'est une démonstration de ses possibilités. Pour ce qui est de grouper des requêtes, je ne sais pas avec mysql_*(), mais la syntaxe : Code : PHP - Afficher / masquer les numéros de ligne
|
Anonyme
|
# Posté le 28/02/2008 à 03:16:10 - Ce membre n'a pas mis de note |
|
Groupe : |
Citation MySQLi permet de faire la même chose que l'extension MySQL (ça vous savez le faire, maintenant), plus plein d'autres trucs. Les plus intéressants sont la gestion des transactions et surtout la possibilité de « grouper » les requêtes en un seul appel. Mais là, c'est l'objet d'un autre tuto ! Si c'est la pour toi les raisons principales pour utiliser mysqli, c'est un peu n'importe quoi. Rien n'empêche d'utiliser les transactions avec les fonctions mysql_*(). Et rien n'empêche de "grouper" plusieurs requêtes en un seul appel (ce qui n'a pas grand intérêt d'ailleurs si ce n'est une fausse idée de compréhension). |
ilys
|
# Posté le 27/02/2008 à 21:19:37 - Ce membre a mis la note : 20 |
Vive le Rock, Linux, et le SDZ![]() Groupe : Membres |
Moi je dit 20/20 C"est vrai qu'il faut corrigé le easyphp5 Fait par Tn. >>>>>>Mon tuto sur la Recherche séquentielle et dichotomique >>>>>>Mon topic sur les images anti-bots Venez signer la PETITION ANTI-CENSURE |
EmmaBlack
|
# Posté le 27/02/2008 à 18:46:59 - Ce membre a mis la note : 15 |
![]() Groupe : Membres |
Bon tuto ![]() Beaucoup de chance qu'il me serve une fois, mais EasyPHP5, ils n'en sont pas au développement de la 2 ? |
Dam_neo
|
# Posté le 27/02/2008 à 13:20:14 - Ce membre a mis la note : 17 |
![]() Groupe : Membres |
Vraiment interessant
|
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
322 Zéros connectés |
9 requêtes |
0.0202s (0.0078s)
