Přechod na PHP 7 a problém s databází

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

Ahoj,

zkouším jednu svojí postarší aplikaci (Nette 2.3) přehodit na PHP 7. Aplikace používá jak Nette/Database tak Dibi (v3.0) a dodnes jsem používal driver a extension pro mysql.

Přehodím-li driver na mysqli, vyhodí mi hlášku: could not find driver (Nette očividně tento driver nemá)
Přehodím-li na PDO, vyhodí hlášku: invalid data source name (config s dsn níže)

Nějaký tip na bezbolestný předchod aniž by bylo potřeba doinstalovat mysql.so do PHP?

	database:
		default:
			dsn: '%database.driver%:dbname=%database.database%;host=%database.host%'
			user: %database.user%
			password: %database.password%
			debugger: TRUE
			explain: TRUE
			reflection: discovered

Laděnky:
http://cl.ly/gCBl
http://cl.ly/gC7W
http://cl.ly/gCGL

Unlink
Člen | 298
+
+3
-

Dibi\NotSupportedException
PHP extension ‚mysql‘ is not loaded.

v php 7 už mysql_* funkcie niesu podporované, takže musíš použiť mysqli alebo pdo pre dibi

Nette\Database\ConnectionException
could not find driver

Používaš pdo kde ako driver špecifikuješ mysqli, správne má byť mysql

Dibi\DriverException
invalid data source name

Tuna nemáš správne špecifikované DSN

Konfiguráciu pre nette/database máš správne, len ako driver uveď mysql

pre dibi by mohla vyzerať nejako takto

dibi:
	driver: pdo
	dsn: '%database.driver%:dbname=%database.database%;host=%database.host%'
    user: %database.user%
    pass: %database.password%

Editoval Unlink (16. 5. 2016 17:01)