2012-10-05 28 views

risposta

34

Bene che è la parte migliore di PDO è che è abbastanza facile da accedere a qualsiasi database. A patto di aver installato i driver, si dovrebbe essere in grado di fare solo:

$db = new PDO("sqlsrv:Server=YouAddress;Database=YourDatabase", "Username", "Password"); 
+0

Grazie per essere la prima di dieci domande su Stackoverflow per ottenere i parametri di connessione giusti. Gli altri esempi che stavo osservando avevano "Host" invece di "Server". – Mark

7

Capito. Abbastanza semplice:

new PDO("sqlsrv:server=[sqlservername];Database=[sqlserverdbname]", "[username]", "[password]"); 
8

mente che nella mia esperienza e anche di altri (PHP - Why is new SQLSRV driver slower than the old mssql driver?) che l'uso PDO_SQLSRV è il modo più lento rispetto attraverso PDO_ODBC.

Se si desidera utilizzare il più veloce PDO_ODBC è possibile utilizzare:

//use any of these or check exact MSSQL ODBC drivername in "ODBC Data Source Administrator" 
$mssqldriver = '{SQL Server}'; 
$mssqldriver = '{SQL Server Native Client 11.0}'; 
$mssqldriver = '{ODBC Driver 11 for SQL Server}'; 

$hostname='127.0.0.1'; 
$dbname='test'; 
$username='user'; 
$password='pw'; 
$dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password); 
+0

Puoi controllare la mia domanda relativa a http://serverfault.com/questions/722670/s1090unixodbcdriver-managerinvalid-string-or-buffer-length –

+0

Questo non ha funzionato con le parentesi graffe. Funziona alla grande come '$ mssqldriver = 'Driver ODBC 11 per SQL Server';' –

+0

su un nuovo server il vecchio driver sqlsrv non si connetterebbe. questo mi ha salvato un po 'di tempo. Grazie! –

3

Questo funziona per me, e in questo caso è stata una connessione remota: Nota: la porta era importante per me

$dsn = "sqlsrv:Server=server.dyndns.biz,1433;Database=DBNAME"; 
$conn = new PDO($dsn, "root", "P4sw0rd"); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$sql = "SELECT * FROM Table"; 

foreach ($conn->query($sql) as $row) { 
    print_r($row); 
} 
-1
try 
{ 

    $conn = new PDO("sqlsrv:Server=$server_name;Database=$db_name;ConnectionPooling=0", "", ""); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

} 
catch(PDOException $e) 
{ 

    $e->getMessage(); 

} 
Problemi correlati