Autor Zpráva
Perry
Profil
Narazil jsem na zajímavý bug ve fci. preg_replace. Na serveru s PHP 5.2.6 funguje vše jak má, na serveru s PHP 5.2.9 ne...
preg_mach('@SELECT (.*) FROM@',  'SELECT COUNT(*) AS Count FROM', $text);

$text = "SELECT a.b, a.c FROM a...."

výsledek na 5.2.6: SELECT COUNT(*) AS Count FROM a....
výsledek na 5.2.9: SELECT a.b, a.c FROM a ...  //tudíž žádná změna 


Pokud ovšem udělám $text = "SELECT ahoj FROM a, tak se vše chová stejně na 6 i 9 revizi...

Neví někdo, co je blbě ? Popř. jestli je to vážně bug v PHPku ?
tiso
Profil
Perry - začni tým, že sem dáš celý príklad a nie niečo, čo si si vymyslel a napísal s chybami...
Perry
Profil
tiso: Tohle je celý příklad.
Mastodont
Profil
Perry
A ten příklad ti chodí? Moje PHP teda funkci preg_mach nezná :)
Perry
Profil
aha :) my bad... preg_replace misto preg_mach :)
Majkl578
Profil
vysledek na 5.3.0: SELECT COUNT(*) AS Count FROM a....
joe
Profil
Možná je to bug, nicméně ti poradím takhle to neprovádět a radši si do metody přidat další vlastnoručně napsaný SQL dotaz pro výpočet řádků. Proč? Protože v tom původním můžeš řádky podle nějakého řadit a to je při počítání řádků zbytečné. Můžeš si na to asi zase napsat nějaký ten preg_replace, ale přijde mi, že je lepší mít kontrolu nad tím, jak ten SELECT COUNT vlastně vypadá...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: