Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Db
Zend_Db Forum d'entraide pour le composant Zend_Db du Zend Framework (création de requêtes, abstraction, ORM etc.). Avant de poster -> FAQ Zend_Db.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/08/2007, 12h09   #1
Membre à l'essai
 
Inscription : août 2007
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 74
Points : 21
Points : 21
Par défaut [Zend_Auth] + PDO_MSSQL : problème d'authentification

Bonjour à tous , je rencontre quelques problèmes à réaliser une authentification avec Zend_Auth (1.0.1) sous Microsoft SQL 2000.

Aucun problème lors de l'utilisation de pdo_mysql en revanche avec pdo_mssql j'obtiens un message du genre :

Citation:
"Uncaught exception 'Zend_Auth_Adapter_Exception' with message 'The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity"
J'ai alors regardé le code source du fichier DbTable.php afin de voir la requête générée automatiquement par cette classe lors d'une authentification et on trouve ceci :
Code :
1
2
 
"SELECT `nomTable`.*, `password` = 'test' AS zend_auth_credential_match FROM `nomTable` WHERE (`username` = 'test')"
Cette syntaxe est tout à fait comprise par Mysql mais par SQL Server.

Dois-je faire quelque chose du coté base de donnée ou est-ce un problème de config ou tout simplement un bug du FrameWork ?

J’espère que quelqu'un pourra me répondre car je dois avouer que cela me dépasse. Merci d'avance
MaitreTsiang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 12h35   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Si tu envoies cette requête directement à MS SQL Server, quelle réponse as-tu ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 14h05   #3
Membre à l'essai
 
Inscription : août 2007
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 74
Points : 21
Points : 21
Salut Yogui, lorsque j'execute cette requête directement coté SQL Server j'obtiens la réponse suivante :

-> Syntaxe incorrecte vers le mot clé 'AS'.

Je rappel que cette requete est automatiquement générée par Zend et que j'ai du bidouiller les sources pour pouvoir l'afficher.
MaitreTsiang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 14h08   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Alors c'est sans doute un bug de l'API
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 14h15   #5
Membre à l'essai
 
Inscription : août 2007
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 74
Points : 21
Points : 21
Ok donc tu en viens à la même conclusion que moi

Faut il faire une demande auprès de nos confrères développeur de chez Zend ?

Si oui comment faire ?
MaitreTsiang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 14h20   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Il faut sans doute faire un rapport de bug et éventuellement proposer une solution. Je t'avoue ne pas m'être penché sur la question...
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 11h02   #7
Membre à l'essai
 
Inscription : août 2007
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 74
Points : 21
Points : 21
J'ai signalé le bug sur la DevZone mais toujours pas de réponse de leur part.
En fouillant un peu plus, je m’aperçoit que le plantage vient au moment suivant :

Code :
1
2
3
4
5
6
## class Zend_Auth_Adapter_DbTable ##
try {
            $resultIdentities = $this->_zendDb->fetchAll(str_replace('"','',$dbSelect->__toString()));
        } catch (Exception $e) {
 
############################
Le fetchAll() ne revoit rien donc le test part directement dans le catch.
Quelqu'un aurait il une solution à proposer pour remédier à cela ?
MaitreTsiang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 11h05   #8
Membre à l'essai
 
Inscription : août 2007
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 74
Points : 21
Points : 21
Oups désoler, le str_replace() était un essai pour voir si cela ne venait pas des quote_identifier, il ne faut pas en tenir compte
MaitreTsiang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 15h07   #9
Membre à l'essai
 
Inscription : août 2007
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 74
Points : 21
Points : 21
J'ai réussi faire une modification dans la classe pour que l'authentification soit acceptée et maintenant j'ai le message suivant :

Citation:
Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'A table must have a primary key, but none was found' in J:\www\test\library\Zend\Db\Table\Abstract.php:640 Stack trace: #0 J:\www\test\library\Zend\Db\Table\Abstract.php(529): Zend_Db_Table_Abstract->_setupPrimaryKey() #1 J:\www\test\library\Zend\Db\Table\Abstract.php(264): Zend_Db_Table_Abstract->_setup() #2 J:\www\test\application\controllers\IndexController.php(21): Zend_Db_Table_Abstract->__construct() #3 ........
Quelqu'un a-t-il déjà rencontré ce message ou sais comment le régler ? Merci d'avance
MaitreTsiang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 15h45   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
On dirait qu'il te manque une clef primaire. C'est ce que dit le message d'erreur, qui me semble très explicite au passage
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 15h49   #11
Membre à l'essai
 
Inscription : août 2007
Messages : 74
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 74
Points : 21
Points : 21
Lol oui jusque là j'avais compris mais je ne vois aucune methode qui permette d'indiquer la clé primaire dans la classe.
Ma table a bien une clé primaire de déclarée mais comment l'indiquer à la classe. De plus je ne pense pas avoir vu quelque part qu'il était nécéssaire dans déclarer une durant la procedure d'authentification.
MaitreTsiang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 18h08   #12
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Citation:
Envoyé par Yogui Voir le message
Alors c'est sans doute un bug de l'API
(bis)
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h41   #13
Invité régulier
 
Inscription : mars 2009
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 10
Points : 6
Points : 6
il faudrait pas :
Code :
protected $_primary = 'my_key';
?
perace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 18h25   #14
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 686
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 686
Points : 1 052
Points : 1 052
C'est exactement ça et il serait bon de lire la documentation plutôt que de systématiquement demander de l'aide tu ne progressera pas sinon et ça t'aurais fait gagner du temps pour ce deuxième problème.

En ce qui concerne ton problème avec ms server.
Zend supporte tout à fait ce SGBD, j'ai déjà travaillé sous postgresql, mysql et et ms server sans rencontrer le moindre problème.

Tu as configurer au moins ton application pour dire d'utiliser le connecteur adéquat?

Si tu as es doutes sur ce que je dis je t'invite à regarder http://framework.zend.com/manual/fr/...b.adapter.html
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h47.


 
 
 
 
Partenaires

Hébergement Web