Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4179 connectés 

 


Pour ou contre du changement sur le topic ?


 
35.7 %
 5 votes
1.  Oui, faq / bonnes pratiques + blabla@php
 
 
0.0 %
        0 vote
2.  Oui, blabla@php uniquement
 
 
7.1 %
 1 vote
3.  Ce topic mérite la poubelle. Pauvre poubelle
 
 
21.4 %
 3 votes
4.  Non, ce topic reste tel quel
 
 
35.7 %
 5 votes
5.  Obiwan n'aime pas le php
 

Total : 16 votes (2 votes blancs)
Ce sondage est clos, vous ne pouvez plus voter
 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  34  35  36  ..  66  67  68  69  70  71
Auteur Sujet :

blabla@php | faq et bonnes pratiques page 1

n°1976495
theredled
● REC
Posté le 23-03-2010 à 19:04:01  profilanswer
 

Reprise du message précédent :

nraynaud a écrit :


1) RelUserApplication sert pour la sélection (là on parle de la projection)  
2) je vais projeter des colonnes de Data dès que j'arriverai à projeter des colonnes de RelUaData indépendamment les unes des autres.


 
Cf edit, j'avais oublié le ->where() [:joce]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
mood
Publicité
Posté le 23-03-2010 à 19:04:01  profilanswer
 

n°1976844
nraynaud
lol
Posté le 24-03-2010 à 15:17:23  profilanswer
 

hep les jeunes, si quand je fais un ->save() une erreur SQL se produit, je le sais comment ? ça déclenche une exception ?

 

edit : comment on gère les UNIQUE avec doctrine ? genre j'ai mis mon "index" unique, mais comment ensuite je sais lors un coup de DML si on a tenté de violer la contrainte et ça a échoué ?

Message cité 1 fois
Message édité par nraynaud le 24-03-2010 à 15:18:38

---------------
trainoo.com, c'est fini
n°1976847
flo850
moi je
Posté le 24-03-2010 à 15:30:11  profilanswer
 

Code :
  1. try
  2.    {
  3.      $con->beginTransaction();
  4.  
  5.      $this->doSave($con);
  6.  
  7.      $con->commit();
  8.    }
  9.    catch (Exception $e)
  10.    {
  11.      $con->rollBack();
  12.  
  13.      throw $e;
  14.    }


---------------

n°1976849
theredled
● REC
Posté le 24-03-2010 à 15:32:26  profilanswer
 

nraynaud a écrit :

hep les jeunes, si quand je fais un ->save() une erreur SQL se produit, je le sais comment ? ça déclenche une exception ?

 

edit : comment on gère les UNIQUE avec doctrine ? genre j'ai mis mon "index" unique, mais comment ensuite je sais lors un coup de DML si on a tenté de violer la contrainte et ça a échoué ?


Ca balance une exception oui (Doctrine_Connection_Exception), $e->getCode() étant le code de l'erreur SQL


Message édité par theredled le 24-03-2010 à 15:32:37

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1976861
nraynaud
lol
Posté le 24-03-2010 à 15:51:29  profilanswer
 

ok, merci.
 
Et le nom de la contrainte qui a pété, je le retrouve comment ?


---------------
trainoo.com, c'est fini
n°1976868
theredled
● REC
Posté le 24-03-2010 à 15:56:42  profilanswer
 

nraynaud a écrit :

ok, merci.
 
Et le nom de la contrainte qui a pété, je le retrouve comment ?


Lol, on parle de mysql là :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1976871
nraynaud
lol
Posté le 24-03-2010 à 15:58:02  profilanswer
 

on parle de doctrine non ?


---------------
trainoo.com, c'est fini
n°1976874
theredled
● REC
Posté le 24-03-2010 à 15:58:33  profilanswer
 

Enfin ce qui est sûr, c'est que tu n'auras pas de gestion d'erreurs qui soit cross-SGBD...


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1976877
theredled
● REC
Posté le 24-03-2010 à 16:00:04  profilanswer
 

nraynaud a écrit :

on parle de doctrine non ?


Ah oui. Mais cf dernier message, la gestion des erreurs sera pas cross-SGBD (par ex, le code l'erreur SQL...)


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1976878
nraynaud
lol
Posté le 24-03-2010 à 16:00:26  profilanswer
 

spa une erreur, c'est la vie normale une contrainte qui pète [:ciler]
T'insères le nouvel utilisateur et si ça pète tu préviens ton client que le login est déjà pris.


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 24-03-2010 à 16:00:26  profilanswer
 

n°1976881
skeye
Posté le 24-03-2010 à 16:03:39  profilanswer
 

nraynaud a écrit :

spa une erreur, c'est la vie normale une contrainte qui pète [:ciler]
T'insères le nouvel utilisateur et si ça pète tu préviens ton client que le login est déjà pris.


 
Non, tu vérifies s'il existe, et s'il existe pas t'insères.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1976895
nraynaud
lol
Posté le 24-03-2010 à 16:11:52  profilanswer
 

skeye a écrit :

Non, tu vérifies s'il existe, et s'il existe pas t'insères.[:petrus75]


et entre les 2 t'as une race condition ou une transaction inutilement longue ?


---------------
trainoo.com, c'est fini
n°1976898
nraynaud
lol
Posté le 24-03-2010 à 16:12:40  profilanswer
 

toi t'es du genre à vérifier que le fichier existe avant de l'ouvrir non ? [:petrus75]


---------------
trainoo.com, c'est fini
n°1976900
FlorentG
Posté le 24-03-2010 à 16:13:24  profilanswer
 

Il vérifie que le fichier existe à chaque lecture d'octet... Pour être vraiment sûr.

n°1976906
skeye
Posté le 24-03-2010 à 16:17:31  profilanswer
 

nraynaud a écrit :

et entre les 2 t'as une race condition ou une transaction inutilement longue ?


Une procédure stockée, ou un insert intelligent qui ne fait rien si le login existe déjà.[:petrus75]
Et tu testes le nombre de lignes affectées par la commande.[:dawa]


---------------
Can't buy what I want because it's free -
n°1976921
ratibus
Posté le 24-03-2010 à 16:36:07  profilanswer
 

nraynaud a écrit :

spa une erreur, c'est la vie normale une contrainte qui pète [:ciler]
T'insères le nouvel utilisateur et si ça pète tu préviens ton client que le login est déjà pris.


+1

skeye a écrit :


 
Non, tu vérifies s'il existe, et s'il existe pas t'insères.[:petrus75]


 
han  :o


---------------
Mon blog
n°1976923
nraynaud
lol
Posté le 24-03-2010 à 16:42:37  profilanswer
 

skeye a écrit :


Une procédure stockée, ou un insert intelligent qui ne fait rien si le login existe déjà.[:petrus75]
Et tu testes le nombre de lignes affectées par la commande.[:dawa]


alors qu'il y a un mécanisme déjà fait ?


---------------
trainoo.com, c'est fini
n°1976932
skeye
Posté le 24-03-2010 à 16:59:15  profilanswer
 

nraynaud a écrit :


alors qu'il y a un mécanisme déjà fait ?


 
J'ai aucune confiance en php, il a trop tendance à exploser avec des erreurs fatales au lieu de me refiler des exceptions.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1976936
nraynaud
lol
Posté le 24-03-2010 à 17:01:08  profilanswer
 

skeye a écrit :

J'ai aucune confiance en php, il a trop tendance à exploser avec des erreurs fatales au lieu de me refiler des exceptions.[:petrus75]


on parle de la base de données.


---------------
trainoo.com, c'est fini
n°1976937
nraynaud
lol
Posté le 24-03-2010 à 17:02:09  profilanswer
 

Code :
  1. try {
  2.         $newUser = new User();
  3.         $newUser['login'] = $login;
  4.         ....
  5.         $newUser->save();
  6.         return true;
  7.     } catch (Doctrine_Connection_Sqlite_Exception $e) {
  8.         if ($e->getPortableCode() == Doctrine_Core::ERR_CONSTRAINT)
  9.             return false;
  10.         else
  11.             throw $e;
  12.     }


---------------
trainoo.com, c'est fini
n°1976939
skeye
Posté le 24-03-2010 à 17:03:11  profilanswer
 

nraynaud a écrit :


on parle de la base de données.


La base de données pète une erreur. Qui remonte à php. Qui me pète à la gueule en affichant des insultes à l'utilisateur.[:jagstang]


---------------
Can't buy what I want because it's free -
n°1976940
flo850
moi je
Posté le 24-03-2010 à 17:03:15  profilanswer
 

ne devrais tu pas remplacer  Doctrine_Connection_Sqlite_Exception par Doctrine_Connection_Exception


---------------

n°1976954
skeye
Posté le 24-03-2010 à 17:15:37  profilanswer
 

nraynaud a écrit :

Code :
  1. try {
  2.         $newUser = new User();
  3.         $newUser['login'] = $login;
  4.         ....
  5.         $newUser->save();
  6.         return true;
  7.     } catch (Doctrine_Connection_Sqlite_Exception $e) {
  8.         if ($e->getPortableCode() == Doctrine_Core::ERR_CONSTRAINT)
  9.             return false;
  10.         else
  11.             throw $e;
  12. }



Tiens ça me fait penser qu'il faut que je teste la tronche de l'exception que ZF envoie dans ce genre de cas.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1976956
theredled
● REC
Posté le 24-03-2010 à 17:18:44  profilanswer
 

nraynaud a écrit :

Code :
  1. if ($e->getPortableCode() == Doctrine_Core::ERR_CONSTRAINT)



Pas mal ça tiens [:implosion du tibia]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1976957
nraynaud
lol
Posté le 24-03-2010 à 17:18:54  profilanswer
 

flo850 a écrit :

ne devrais tu pas remplacer  Doctrine_Connection_Sqlite_Exception par Doctrine_Connection_Exception


si, merde. Merci.


---------------
trainoo.com, c'est fini
n°1976958
skeye
Posté le 24-03-2010 à 17:19:50  profilanswer
 

theredled a écrit :


Pas mal ça tiens [:implosion du tibia]


Ouais, mais faut avoir un équivalent à dispo, sinon c'est pour ta pomme la vérification des codes d'erreur...[:petrus75]


---------------
Can't buy what I want because it's free -
n°1976961
nraynaud
lol
Posté le 24-03-2010 à 17:21:54  profilanswer
 

skeye a écrit :


Ouais, mais faut avoir un équivalent à dispo, sinon c'est pour ta pomme la vérification des codes d'erreur...[:petrus75]


y'a des techniques "normalisées" [:ciler]

Code :
  1. $sqlState = $e->getCode();
  2. if ($sqlState >= 23000 && $sqlState < 24000) {
  3.   return ko_answer(_t('msg_statuName_Signup'));
  4. }



---------------
trainoo.com, c'est fini
n°1976962
skeye
Posté le 24-03-2010 à 17:23:34  profilanswer
 

nraynaud a écrit :


y'a des techniques "normalisées" [:ciler]

Code :
  1. $sqlState = $e->getCode();
  2. if ($sqlState >= 23000 && $sqlState < 24000) {
  3.   return ko_answer(_t('msg_statuName_Signup'));
  4. }




[:tinostar]


---------------
Can't buy what I want because it's free -
n°1976964
nraynaud
lol
Posté le 24-03-2010 à 17:31:34  profilanswer
 

les numéros de SQLState sont dans la norme SQL92 [:ciler]
 
bon, je viens de virer mon fichier SQL \o/ je créé la base à coup de modèles PHP et de YAML pour les données initiales \o/
 

Spoiler :

au passage j'ai niqué 2 tables, mais personne ne le verra [:dawa]


---------------
trainoo.com, c'est fini
n°1976966
skeye
Posté le 24-03-2010 à 17:34:46  profilanswer
 

nraynaud a écrit :

les numéros de SQLState sont dans la norme SQL92 [:ciler]


[:delarue5]
...donc pour PDO les mecs se sont faits chier à traduire les erreurs spécifiques de chaque SGBD dans un autre système de codes d'erreurs à la con au lieu de créer des Exceptions spécifiques...Bien joué les gars, c'est ce genre de prouesses qui a fait la réputation de php! [:dawak]
 

nraynaud a écrit :

bon, je viens de virer mon fichier SQL \o/ je créé la base à coup de modèles PHP et de YAML pour les données initiales \o/


[:bien]
 

nraynaud a écrit :

Spoiler :

au passage j'ai niqué 2 tables, mais personne ne le verra [:dawa]



[:chrisbk]


---------------
Can't buy what I want because it's free -
n°1976967
nraynaud
lol
Posté le 24-03-2010 à 17:38:57  profilanswer
 

skeye a écrit :


[:delarue5]
...donc pour PDO les mecs se sont faits chier à traduire les erreurs spécifiques de chaque SGBD dans un autre système de codes d'erreurs à la con au lieu de créer des Exceptions spécifiques...Bien joué les gars, c'est ce genre de prouesses qui a fait la réputation de php! [:dawak]


non, je crois que tous les drivers te filent plus ou moins le SQLState


---------------
trainoo.com, c'est fini
n°1976973
skeye
Posté le 24-03-2010 à 17:57:35  profilanswer
 

nraynaud a écrit :


non, je crois que tous les drivers te filent plus ou moins le SQLState


A ma connaissance le driver oci8 ne sait donner que l'erreur oracle...


---------------
Can't buy what I want because it's free -
n°1977033
nraynaud
lol
Posté le 24-03-2010 à 21:44:54  profilanswer
 

http://www.doctrine-project.org/do [...] :diff-tool
 
les migration ça utilise une table spéciale dans la base pour retenir la version courante comme Rails ?


---------------
trainoo.com, c'est fini
n°1977064
theredled
● REC
Posté le 25-03-2010 à 01:02:23  profilanswer
 

nraynaud a écrit :

http://www.doctrine-project.org/do [...] :diff-tool
 
les migration ça utilise une table spéciale dans la base pour retenir la version courante comme Rails ?


ouay


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1977068
nraynaud
lol
Posté le 25-03-2010 à 01:07:51  profilanswer
 

et son petit nom par défaut c'est quoi ? elle sera créé lors de ma première migration ?


---------------
trainoo.com, c'est fini
n°1977072
theredled
● REC
Posté le 25-03-2010 à 01:17:55  profilanswer
 

De tête, migration_version jcrois. Elle est créée à la première migration ouais.
 
edit : migration_version je confirme.


Message édité par theredled le 25-03-2010 à 01:18:47

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1977133
nraynaud
lol
Posté le 25-03-2010 à 10:45:09  profilanswer
 

merci


---------------
trainoo.com, c'est fini
n°1977653
nraynaud
lol
Posté le 26-03-2010 à 10:19:22  profilanswer
 

hep les jeunes, de manière simplifiée je fais à peu près partout  

Code :
  1. echo json_encode(query->fetchArray())


 
c'est super, mais pour les XSS je me touche la bite, vous savez comment introduire proprement le htmlspecialchars entre les 2 ?


---------------
trainoo.com, c'est fini
n°1977654
flo850
moi je
Posté le 26-03-2010 à 10:21:27  profilanswer
 

array_map ?  


---------------

n°1977656
theredled
● REC
Posté le 26-03-2010 à 10:21:59  profilanswer
 

Pourquoi tu le fais pas en JS ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1977657
skeye
Posté le 26-03-2010 à 10:22:17  profilanswer
 

nraynaud a écrit :

hep les jeunes, de manière simplifiée je fais à peu près partout  

Code :
  1. echo json_encode(query->fetchArray())


 
c'est super, mais pour les XSS je me touche la bite, vous savez comment introduire proprement le htmlspecialchars entre les 2 ?


 
Faire un array_walk_recursive sur le tableau retourné avant de le json_encoder?
http://fr.php.net/manual/en/functi [...] ursive.php


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  34  35  36  ..  66  67  68  69  70  71

Aller à :
Ajouter une réponse
 

Sujets relatifs
Problème pour une mise en page sous forme de tableauAfficher sur une page web directement le resultat d'une autre page web
[PHP] Fonction include plus rapide qu'un bout de code dans la page ?Ouvrir un fichier HTML en fin de page
[Résolu] Expirer la cache au niveau de la pageexecuter une page php sans rien afficher
inserer dans ma page wikiControler le changement de page
Certificat SSL a valider pour chaque élément de pageinstallé un mdp sur une page web avec Namo
Plus de sujets relatifs à : blabla@php | faq et bonnes pratiques page 1


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)