Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-09-2007 18:49:35

ALkyD
Membre
Lieu: Limoges
Date d'inscription: 11-07-2007
Messages: 69
Site web

[Zend_Db][1.0.1] Bug avec fetchAll ?

Salut,

J'ai l'impression de rencontrer un bug de fou avec la méthode fetchAll() et l'utilisation de l'ORM.

J'ai une table "News" mappée en ORM :

Code:

class Sql_News extends Zend_Db_Table_Abstract
{    
    protected $_primary = 'id_news';
    protected $_name = 'news';
}

Code:

CREATE TABLE `news` (
  `id_news` smallint(3) unsigned NOT NULL auto_increment,
  `libelle_news` varchar(250) NOT NULL,
  `contenu_news` longtext NOT NULL,
  `date_ajout` int(10) NOT NULL,
  `id_membre` smallint(3) unsigned NOT NULL,
  PRIMARY KEY  (`id_news`),
  KEY `date_ajout` (`date_ajout`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

Elle contient une dizaine d'enregistrements.

En exécutant le code suivant :

Code:

<?php
$db = new Zend_Db_Adapter_Mysqli($config);
$db->getConnection();
$db->getProfiler()->setEnabled(true);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
...
...
$table = new Sql_News();
$rowset = $table->fetchAll()->toArray();
?>

les deux dernières lignes me donne, soit un crash Apache, soit une erreur 404. J'obtient d'autres crashs selon le contexte si je n'utilise pas toArray().

J'utilise WAMP 1.7.2 (avec PHP 5.2.3, Apache 2.2.4 et MySQL 5.0.41).

Est-ce un bug connu ? Je suis complètement désamparé face à ce bug et je ne sais pas encore si je dois incriminer ZF et sa soi-disante stabilité...

Une idée ?

Merci

Hors ligne

 

#2 17-09-2007 19:36:27

ALkyD
Membre
Lieu: Limoges
Date d'inscription: 11-07-2007
Messages: 69
Site web

Re: [Zend_Db][1.0.1] Bug avec fetchAll ?

Bon, je me répond à moi-même, et confirme le fait que ça vient d'un beau bug du Zend Framework.

La cause vient de la nature du champ "contenu_news" de la table SQL :

Code:

CREATE TABLE `news` (
  `id_news` smallint(3) unsigned NOT NULL auto_increment,
  `libelle_news` varchar(250) NOT NULL,
  `contenu_news` longtext NOT NULL,
  `date_ajout` int(10) NOT NULL,
  `id_membre` smallint(3) unsigned NOT NULL,
  PRIMARY KEY  (`id_news`),
  KEY `date_ajout` (`date_ajout`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

Si c'est de type "longtext", ça plante.

Si je met en "mediumtext", erreur fatale PHP. Ca peut être résolu en mettant ini_set('memory_limit', '32M') au début du code, mais je sais pas trop si ça fait "propre" et optimisé... :

Code:

Allowed memory size of 8388608 bytes exhausted (tried to allocate 16777216 bytes) in [...]\ZendFramework-1.0.1\Zend\Db\Statement\Mysqli.php on line 227

Par contre si c'est de type "varchar" ou "text", tout marche...

Désolé pour l'inutilié apparente du topic, je vais aller inscrire ce problème dans le bug tracker du site du ZF wink

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages