php 5.6/7 ->fetch() vs fetchAll()

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
driici
Člen | 5
+
0
-

Zdravím,

jenom pokusně jsem si zkusil jeden celkem nový projekt přepnout na PHP 7 na svém dev stroji a narazil jsem na docela nepříjemnou komplikaci:

<?php
//$currentCategory instance of Selection
if ($currentCategory !== NULL) {
	$cc = clone $currentCategory;
	dump($cc->fetch());
	dump($cc->fetchAll());
}
?>

v php 5.6 je výsledek prvního dumpu ActiveRow a druhého array() – toto je očekávaný výsledek
v php 7.0.5 dostanu FALSE a array

Dělám něco špatně, nebo jsem narazil na bug? Když do kódu koukám zpětně, tak by si zasloužil trochu učesat, aby nebyl využit ten pochybný clone, ale v tuhle chvíli mě spíše zajímá rozdíl ve výsledcích.

Editoval driici (27. 4. 2016 10:56)

CZechBoY
Člen | 3608
+
0
-

ActiveRow ale nemá žádný metody fetch ani fetchAll… Nemyslíš Selection?
Selection::fetch vrací false pokud už není žádnej řádek ve výsledku dotazu.

driici
Člen | 5
+
0
-

Jo sorry, upsal jsem se. Mas samozrejme pravdu :)
Upraveno v puvodnim prispevku

A jinak ten radek tam opravdu v databazi mam. Jde o to ze stejny kod nad stejnou databazi v ruznych PHP dava jine vysledky

Editoval driici (27. 4. 2016 10:57)

CZechBoY
Člen | 3608
+
0
-

Spíš to vypadá, že to v tý db nenajde… Co je obsah toho pole po volání fetchAll() v php7?

Jan Tvrdík
Nette guru | 2595
+
0
-

Z toho cos napsal hlavně není vůbec jasné, jestli je to bug u tebe v kódu nebo v Nette, musel bys to mnohem víc izolovat.