2014-11-19 13 views
6

Volevo impostare una connessione di database da PHP a SQL server 2012. Ho un server di wamp (64 bit) configurare su una macchina Windows (64 bit) con PHP 5.5.12 e sulla stessa macchina ho installato SQL Server 2012.non vengono visualizzati su un server WAMP phphinfo() dopo aver aggiunto le voci di estensione nel file php.ini

estratti SQLSRV driver dal official_link

copiati i driver estratti php_sqlsrv_55_ts.dll, extension = php_pdo_sqlsrv_55_ts.dll a php\ext cartella, quindi modificate il file php.ini per includere le estensioni

extension = php_sqlsrv_55_ts.dll; extension = php_pdo_sqlsrv_55_ts.dll; 

Ora ho provato

<?php 
    phpinfo(); 
?> 

Vedo le seguenti informazioni senza alcuna informazione del server SQL al suo interno.

enter image description here

enter image description here

non sembrano aver configurato la connessione al server SQL con successo. Qualcuno potrebbe per favore guidarmi su quello che mi manca qui.

+0

Hai riavviato tutti i servizi e forse anche riavviato dopo aver apportato le modifiche? Altrimenti, fallo. –

+0

Sì, ho riavviato tutti i servizi. – user2569524

+0

Inoltre, è stato scaricato e installato 'Client nativo Microsoft SQL Server 2012' e' Driver Microsoft ODBC 11'. Ricorda che le estensioni php non parlano direttamente al database, parlano al client nativo. Vedi la sezione 'Requisiti di sistema' nella pagina di download che hai fatto riferimento sopra. – RiggsFolly

risposta

3

Il server WAMP a 64 bit non è riuscito a connettersi utilizzando l'estensione drivers = php_sqlsrv_55_ts.dll; extension = php_pdo_sqlsrv_55_ts.dll;

Quindi, ho installato una versione a 32 bit del server WAMP e ora funziona correttamente.

0

sto visitando questa discussione e credo che questo potrebbe aiutare completo per voi e altri con lo stesso problema: How can I install pdo_sqlsrv on my windows 2008 Server 2008 R2?

L'estensione PDO non è la stessa come il driver nativo di Microsoft sta offrendo. Per PDO è necessario abilitare

extension = php_pdo_mssql.dll nel proprio php.ini.

{Normalmente questo file (php_pdo_mssql.dll) dovrebbe trovarsi nella directory di estensione PHP (C: ... \ php \ ext). Se non è lì, puoi scaricare PHP da http://windows.php.net/download/ e prendere semplicemente l'estensione da un pacchetto lì (prendine uno che corrisponda ovviamente alla versione PHP)}.

Sopra è preso da PDO MSSQL Server - Driver not found leggere per ulteriori dettagli. Ho lo stesso problema di Linux e ho salvato tutte le pagine questo è il motivo per cui sto citando per il vostro aiuto.

se tutti sopra non ha funzionato per voi allora:


Sul php.net è elencato che

In Windows, PDO_ODBC è costruito nel nucleo di PHP per impostazione predefinita. È collegato al Driver Manager ODBC di Windows in modo che PHP possa connettersi a qualsiasi database catalogato come DSN di sistema ed è il driver consigliato per la connessione ai database di Microsoft SQL Server. http://php.net/manual/en/ref.pdo-odbc.php

È possibile connettersi a MSSQL server utilizzando i driver ODBC come non ho mai collegare con la mia auto dalle finestre che uso per farlo attraverso Linux usando FreeTDS, nelle pagine seguenti potrebbero aiutare a

  1. http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/
  2. Connect PHP to MSSQL via PDO ODBC
  3. PHP to SQL Server without ODBC or MSSQL support
2

Controllare il registro degli errori php (c: \ wamp \ logs \ php_error.log). Ho avuto la stessa impostazione (64bit WAMP/PHP 5.5.12) e lo stesso riferimento SQLSRV mancante nel phpinfo e ho ottenuto questo errore nel mio ceppo:

PHP Warning: PHP Startup: Impossibile caricare la libreria dinamica ' c: /wamp/bin/php/php5.5.12/ext/php_pdo_sqlsrv_55_ts.dll '-% 1 non è un'applicazione valida per Win32 . in Unknown on line 0

La soluzione era installare la versione a 64 bit dei driver sqlsrv. Ho trovato i driver non ufficiali a 64 bit tramite http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

Avvertenza: nei miei test ho trovato queste estensioni PHP_PDO_SQLSRV a 64 bit 10 volte più lente di quando si utilizza PHP_PDO_ODBC.

+0

Il 64 bit (versione non ufficiale) funziona per me. – htaghizadeh

+0

La versione non ufficiale a 64 bit ha funzionato anche per me! – Neo

-1

Non è stato possibile risolvere questo problema con nessuna delle soluzioni precedenti o con l'abilitazione di alcuna delle estensioni fornite con il mio Windows WAMP Server. Ho provato PDO_ODBC e altri e ho anche trovato il Microsoft Official PDO_SQLSRV.

La soluzione per me era installare i driver PDO_SQLSRV da un sito Web di terze parti. Ho trovato i driver attraverso http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

Di solito non uso DLL da siti Web casuali ma ero disperato e questo ha funzionato per me. Saltellando potrebbe salvare altre ore di frustrazione.

+0

Solo curioso, quante domande hai intenzione di rispondere con questo post? –

+0

Neo, abbiamo una politica contro la ripetizione della stessa soluzione a più domande. Questo è stato pubblicato quattro volte. Prenderesti in considerazione l'eliminazione di tre copie? Chiederò a un moderatore di farlo, ma se riesci a salvarli, lo apprezzeranno - sono sempre molto occupati. – halfer

Problemi correlati