|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 649 ![]() |
Ca peut sembler étrange, mais c'est tout à fait volontaire de ma part. Cet article n'est pas un "tutorial à copier coller", qui explique et guide l'utilisateur vers une solution.
Il s'agit d'un article concret, qui se veux une base de compréhension. En somme, si je veux expliquer comment se connecter, je ne veux pas enfouir les lignes importantes sous du code qui n'est pas nécessairement lié à l'explication. (J'ai souvent des clients qui m'arrivent avec du code qu'ils ont bêtement copié-collé de tutoriels et dont 50% de celui-ci est strictement inutile au projet. Au Québec on dit souvent: "trop c'est comme pas assez.") Donc il y a 2 buts à cet article: - Être un premier contact avec PDO, et permettre à un débutant de mieux comprendre les concepts derrière les futurs tutoriels qu'il lira. - Faire réaliser certains concepts à la base même de PDO qui ne sont pas toujours bien expliqué à une personne ayant déjà essayé, ou utilisant déjà PDO. Donc en aucun cas cet article ne prétend être un tutoriel du type "lisez-moi et convertissez vos projets vers PDO immédiatement après" Je n'ai pas abordé les exceptions plus qu'il faut, car je pense que le sujet dépasse le cadre de cet article, et je préférais consacrer un autre article bien distinct à ce sujet, qui est assez vaste quand même. (Et lorsque cet article existera, je ferais un beau lien: promis !) |
|
|
10
|
|
|
#22 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
01
|
|
|
#23 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 649 ![]() |
Hum, tu me place face à un dilemme
- Si je configure ca en WARNING, c'est comme si je décourageais l'utilisation des exceptions. - Si je met des try-catch, je vais contre mon principe de simplicité... Bon bon, et si j'accepte de mettre un try-catch pour la connexion, tu va en exiger pour tous les exemples qui suivent aussi ? ![]() (Négocier, toujours négocier )
|
|
|
00
|
|
|
#24 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
Citation:
on va dire si on fait du procédurale c'est plus simple de d'utilisé les exceptions, si on fait de l'objet on se tournera plus vers les exceptions, et rien n'empêche dans une classe de faire set_exception_hanlder non plus
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#25 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 649 ![]() |
Et maintenant ?
http://fmaz.developpez.com/tutoriels...re-pdo/#LIII.a J'en ai profité pour faire 3 choses: - Montrer comment faire une trace d'une erreur. - Gérer l'exception - Ajouter la note sur le bug avec PHP 5.3.0 |
|
|
00
|
|
|
#26 |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
la t'auras un Fatal error à chaque erreur de requête fausse
EDIT : t'as pas besoin de faire closeCursor() apres un fetchAll, c'est uniquement quand tu ne parcours pas tout les fetch (et y'a aussi fetchAll pour mysqli, mais uniquement quand il compilé avec mysqlnd donc <= 5.3.0)
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#27 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 649 ![]() |
Oui, je sais, c'est bien ce que j'ai dis plus haut ...
Mais je vais pas mettre des try-catch pour tout les exemples, ca serait pénible à la lecture. Bon, je vais ajouter une note en même temps que celle qui dit que je ne vais pas ré-établir une connexion pour tous les exemples. |
|
|
00
|
|
|
#28 |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
pourquoi tu voudrais ré-établir une connexion ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#29 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 649 ![]() |
Regarde le dernier paragraphe de la section http://fmaz.developpez.com/tutoriels...re-pdo/#LIII.a
|
|
|
00
|
|
|
#30 |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
ah oui ok, j'avais mal compris
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#31 | ||
|
Membre chevronné
![]() Inscription : mars 2005 Messages : 588 ![]() |
J'ai pas vu d'exemple à propos de la méthode bindparam() dans ce tuto ?
Un exemple d'utilisation pratique pour des insertions massives : Code :
__________________
Pourfendeur de singletons en croisade
|
||
|
|
00
|
|
|
#32 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 649 ![]() |
Je sais. Il ne m'a pas semblé utile de couvrir cette fonction qui s'avère nécéssaire (obligatoire) que dans des cas très particulié.
Merci cependant pour les précisions dans les commentaires |
|
|
00
|
|
|
#33 |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
ouai pour du param_str et sans le param length ca sert pas a grand chose
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#34 | |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 323 ![]() |
Citation:
Perso je mets jamais de param length, j'ai surement tords mais je délègue la longueur de ma chaine à ma base ( varchar(50), varchar(100)...). A lui de tronquer ! Mais de toute manière, quand j'arrive à insérer en base, les contrôles php ont déjà été effectués en amont donc ce param ne me sers pas (du moins je pense) |
|
|
|
00
|
|
|
#35 |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
non c'est plus dans le sens ou par défaut tout est binder en str
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#36 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 323 ![]() |
oki je croyais que tu rebondissais sur l'exemple de Petitbidon qui utilisait PDO:
|
|
|
00
|
|
|
#37 | |||
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
Citation:
sinon on peux aussi mettre les tableau ou des objets en paramètre Code :
__________________
http://blog.stealth35.com/ |
|||
|
|
00
|
|
|
#38 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 323 ![]() |
ou alors créer des objets personne avec stdclass ou une classe Personne de facon à ce que si un nom ou un prenom manque, il soit insérer NULL en table et qu'il y est pas d'erreurs de membre prenom/nom manquant mais c'est un autre sujet^^
|
|
|
00
|
|
|
#39 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
Citation:
faudrais que je fasse un sujet sur les FETCH y'a plein de truc simpa, comme le class, into, lazy, func et surtout le group
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#40 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 323 ![]() |
Jamais utilisé FETCH_CLASS alors je suis pas contre un tuto
Demain pour 10h c'est possible ? J'ai maintenant l'habitude d'utiliser le module Zend_Db pour le mapping et je dois dire que parfois on devient un peu fainéant avec et qu'on oublie "les bases" |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com