Po upgrade PHP na 5.6.8/5.6.9 nefunguje skládání SQL SQLBuilder
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- James07
- Člen | 41
Mám na hostingu php5.cz nette(verzi 2.2.7) aplikaci, ale po upgrade na novější PHP (5.6.8 nebo 5.6.9) mi nefunguje sestavení SQL dotazu a místo toho se mi vyhazuje tato chybová hláška:
<?php
Warning
preg_replace_callback(): Compilation failed: internal error: previously-checked referenced subpattern not found at offset 185 search►
Source file
File: .../vendor/nette/database/src/Database/Table/SqlBuilder.php:395
385: $builder = $this;
386: $query = preg_replace_callback('~
387: (?(DEFINE)
388: (?P<word> [a-z][\w_]* )
389: (?P<del> [.:] )
390: (?P<node> (?&del)? (?&word) (\((?&word)\))? )
391: )
392: (?P<chain> (?!\.) (?&node)*) \. (?P<column> (?&word) | \* )
393: ~xi', function($match) use (& $joins, $builder) {
394: return $builder->parseJoinsCb($joins, $match);
395: }, $query);
396: }
397:
398:
399: public function parseJoinsCb(& $joins, $match)
?>
Výsledek je ten, že SQL kód se mi nesestaví správně a kvůli tomu mi nefungují žádné sql příkazy.
To, že je to zapříčiněné novou verzí PHP jenom odhaduji, ale stejný kód mi na PHP 5.6.7 fungoval bezchybně (stejně tak na 5.5.12).