Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před rokem

Gaudentius
Člen
Registrovaný: 29. 3. 2010
Příspěvky: 175

4474 záznamů ⇒ fetchAll ⇒ 500 Internal server error

Ahoj vypisuji si log, kde mám 4474 záznamů:

return dibi::fetchAll('SELECT * FROM [:net:log]');

ale vše skončí bílou stránkou, ani laděnka nevyběhne a ve firebugu vyskočí hláška „NetworkError: 500 Internal Server Error“ – podle mě to bude problém optimalizace, protože, když mám v tabulce 10 záznamů, tak vše funguje jak má.

tbl:

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `net_log`
-- ----------------------------
DROP TABLE IF EXISTS `net_log`;
CREATE TABLE `net_log` (
  `log_id` int(11) NOT NULL AUTO_INCREMENT,
  `log_name` varchar(255) DEFAULT NULL,
  `log_description` mediumtext,
  `log_date` date DEFAULT NULL,
  `log_time` time DEFAULT NULL,
  `log_timestamp` int(11) DEFAULT NULL,
  `id_admin` int(11) DEFAULT NULL,
  `log_presenter` varchar(255) DEFAULT NULL,
  `log_action` varchar(255) DEFAULT NULL,
  `log_params` mediumtext,
  `log_status_code` int(11) DEFAULT NULL,
  `log_ip` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`log_id`),
  KEY `log_date` (`log_date`),
  KEY `log_presenter` (`log_presenter`),
  KEY `log_action` (`log_action`),
  FULLTEXT KEY `log_name` (`log_name`),
  FULLTEXT KEY `log_description` (`log_description`)
) ENGINE=MyISAM AUTO_INCREMENT=19949 DEFAULT CHARSET=utf8;

v čem by mohla být chybka?


Mac OSX | Spaghetti Code – neformální setkání webových vývojářů v Liberci http://srazy.info/spaghetti-code/
.
.

 

#2 před rokem

paranoiq
dibi guru
Registrovaný: 14. 11. 2006
Příspěvky: 357

Re: 4474 záznamů ⇒ fetchAll ⇒ 500 Internal server error

fetchAll() musí do paměti zkpírovat všechny záznamy, na což omezená paměť procesu samozřejmě nestačí. vypisuj je postupně pomocí fetch()

 

#3 před rokem

PetrP
Moderator
Registrovaný: 15. 7. 2008
Příspěvky: 657

Re: 4474 záznamů ⇒ fetchAll ⇒ 500 Internal server error

Pomoci fetch myslel treba takto:

return dibi::query('SELECT * FROM [:net:log]');
...
foreach ($foo as $row) ...

 

Zápatí