IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

problème avec SQL server 7 'SQLSTATE[HY000]: General error: 10007 [FAQ]


Sujet :

Zend_Db PHP

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 50
    Points
    50
    Par défaut problème avec SQL server 7 'SQLSTATE[HY000]: General error: 10007
    Bonjour,

    Je découvre actuellement le zend framework ainsi que ses exceptions.
    Voici ma classe de modèle que j'essaye de mettre en place.
    Je tiens à dire que je me suis inspiré du tutorial http://www.kitpages.fr/zf_tutorial.html pour les choses qui vont suivre.
    C'est une classe qui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    require_once('Zend/Db.php');
     
    	class ModeleMateriel
    	{
    		private function getZendDb()
    		{
    		      $params = array(
                                'host'     => DB_SERVER ,
                                'username' => DB_USER ,
                                'password' => DB_PASSWORD ,
                                'dbname'   => DB_NAME
                           );
                           return Zend_Db::factory(DB_TYPE,$params);
    	        }
     
    		public function selectionUnite()
    		{
     
    			$db = $this->getZendDb();
     
    			$select = $db->select();
     
    			$select->from("t_unite");
     
    			return $db->fetchAll($select);
    		}
    	}
    avec toute les constantes définies dans index.php (à la racine).

    J'utilise SQL server 7. Et pour moi DB_TYPE est définie par "pdo_mssql".
    J'ai par ailleur chargé dans wamp5 les exetenssions :
    php_mssql , php_pdo , php_pdo_mssql

    j'utilise php 5.2 , zend framework 0.9.2 beta , sql server 7.

    dans mon controller j'utilise la classe comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    require_once('models/ModeleMateriel.php');
    	class AjouterMaterielController extends Zend_Controller_Action
    	{
    		public function init()
    		{
    			//On initialise ici, si necessaire.
    		}
     
    		public function ajouterMaterielAction()
    		{
    			echo "dans AjouterMaterielController::ajouterMaterielAction()<br/>";
     
    			$modele_materiel = new ModeleMateriel();
    			$all = $modele_materiel->selectionUnite();
    			foreach($all as $colonne)
    				echo $colonne["id_unite"] . ' ' . $colonne["code_unite"] . ' ' . $colonne["libelle_unite"];
    		}
    	}
    Mais quelque chose se passe mal car j'ai l'exception suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'SQLSTATE[HY000]: General error: 10007 Ligne 2 : Syntaxe incorrecte vers '.'. [10007] (severity 5) [(null)]' in C:\wamp\www\library\Zend\Db\Adapter\Pdo\Abstract.php:177 Stack trace:
    #0 C:\wamp\www\library\Zend\Db\Adapter\Abstract.php(331): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Select), Array)
    #1 C:\wamp\www\visite\mvc\models\ModeleMateriel.php(31): Zend_Db_Adapter_Abstract->fetchAll(Object(Zend_Db_Select))
    #2 C:\wamp\www\visite\mvc\controllers\AjouterMaterielController.php(17): ModeleMateriel->selectionUnite()
    #3 C:\wamp\www\library\Zend\Controller\Action.php(501): AjouterMaterielController->ajouterMaterielAction()
    #4 C:\wamp\www\library\Zend\Controller\Dispatcher\Standard.php(214): Zend_Controller_Action->dispatch('ajoutermateriel...')
    #5 C:\wamp\www\library\Zend\Controller\Front.php(753): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
    #6 C:\wamp\www\visite\inde in C:\wamp\www\library\Zend\Db\Adapter\Pdo\Abstract.php on line 177
    J'espère que quelqu'un pourra m'aider car je ne vois vraiment pas comment résoudre le problème.

  2. #2
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 50
    Points
    50
    Par défaut
    Voilà je me réponds !!

    C'est en fait un problème d'execution de requete !! Qui l'eut cru ?

    Je tiens à signaler au passage que le message de l'exeception n'est pas du tout explicite.

    En fait voilà la problème : quand vous faites une requete avec l'objet Zend_Db_Select de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $select = $db->select();
    $select->select("ma_table",array("colonne1") );
    Zend_Db_Select transforme ce que vous lui avez passé en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT "ma_table"."colonne1" FROM "ma_table";
    Or MSSQL server 7 (c'est celui que nous utilisons) n'aime pas du tout ce genre de requete, il les préfere sans quote double.

    Donc la 1ère solution consiste à faire un remplacement des quotes doubles par rien avant d'executer la requete.

    La 2ème consiste à activer l'option quoted identifier sur la table que vous souhaitez requeter dans MS SQL server 7.

    Voilà en espérant que cela puisse aider quelqu'un. (je suis peut-être le seul à utiliser MS SQL server )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec SQL SERVER 2008
    Par DrMabuse dans le forum Administration
    Réponses: 2
    Dernier message: 31/03/2010, 19h20
  2. problème avec sql server
    Par minerva dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 14/12/2009, 23h00
  3. Problème avec SQL server
    Par HCN001 dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/06/2008, 02h17
  4. Problème avec SQL Server
    Par demando77 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/04/2008, 11h16
  5. problème avec SQL server
    Par kyoshiroFR dans le forum Accès aux données
    Réponses: 4
    Dernier message: 03/07/2007, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo