MSSQL connection could not find driver

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

Zdravím,

mám problém s připojením na MSSQL Server, dle internetu jsem si stáhl php_pdo_mssql.dll, které jsem pak samozřejmě přidal do php.ini, nevím co by mi ještě mohlo pomoci, abych se připojil. Nicméně Nette stále hlasí:

PDOException

could not find driver

Má někdo zkušenosti s připojením se na MSSQL SERVER? Budu vděčný za jakoukoliv radu.

Děkuji.

AT
Člen | 5
+
0
-

Načetl se ti modul správně? Když vypíšeš přes nastavení přes phpinfo(); máš tam položku pdo_sqlsrv?

Ještě můžeš mít špatný zápis ke spojení k DB

funkční je:

<?php
$con = new PDO ("sqlsrv:Server=$hostname;Database=$dbname", $username, $pw);
?>

Jinak pozor Nette\Database nemá dodělanou podporu pro MSSQL, jen ať nejsi překvapen jako já kdysi při prvním dotazu na DB, když Nette vyhodilo vyjimku NotImplemented.

enumag
Člen | 2118
+
0
-

Trochu to upřesním, MSSQL driver pro Nette\Database nemá implementované čtení cizích klíčů takže nefunguje DiscoveredReflection, je nutné použít ConventionalReflection. Anebo můžeš implementovat co v tom driveru chybí a poslat pull request. ;-)

Editoval enumag (15. 3. 2013 20:59)

Majkl578
Moderator | 1364
+
0
-

Vidíš pdo_sqlsrv v php info? V 1. příspěvku uvádíš php_pdo_mssql.dll, nemělo by to být spíš php_pdo_sqlsrv.dll?

wb2009
Člen | 125
+
0
-

Zdravím, omluvám se, byl jsem dnes mimo PC,

takže postupně, zjistil jsem, že MSSQL je již zastaralé a používá se SQLSRV, když jsem se pokusil připojit klasicky přes sqlsrv, dle oficiálních PHP stránek, tak jsem se připojil a mohl provádět dotazy. Nicméně v nette se připojit prostě přes sqlsrv zatím nemohu…

to AT:
v phpinfo mám pdo_sqlsrv enabled, pokud použiji, tvůj kód, žádné chyby mi to nehlásí, zřejmě je funkční a k db se připojím…

EDIT:

Teď jsem našel na internetu, že by můj problém mohl vyřešit PDO driver z magické knihovny DIBI, je čas asi na změnu a to přejít z Nette Database → DiBi?

EDIT2:

Bylo by fajn, kdyby Nette database mělo tenle driver jako dibi: https://api.dibiphp.com/…oDriver.html???

Editoval wb2009 (16. 3. 2013 19:35)

enumag
Člen | 2118
+
0
-

Drivery v Nette\Database jsou na něco jiného než v případě dibi. Dibi dokáže fungovat s různými rozšířeními pro PHP, NDB pracuje výhradně přes PDO. Drivery pro NDB řeší např. různé formáty datových typů jako date nebo bool a zjišťování tabulek a cizích klíčů. Dibi žádné tabulky ani cizí klíče zjišťovat nepotřebuje.

wb2009
Člen | 125
+
0
-

Ok, asi přejdu na dibi, alespoň do té doby, než bude se možné připojit v NDB přes sqlsrv…

No nic jdu mrknout, zde někde něco není o Nette s Dibi :)

Edit:

S Dibi to frčí, přecházím na Dibi :)

P.S. je to magic knihovna :)

Editoval wb2009 (18. 3. 2013 22:46)