it-swarm.com.de

Stellen Sie über PDO mit dem SQL Server-Treiber eine Verbindung zu SQL Server her

Ich versuche, eine Verbindung zu einer vorhandenen SQL Server-Datenbank über PDO mit den Treibern herzustellen, die von Microsoft bereitgestellt werden.

Ich habe Beispiele mit odbc, dblib, mssql usw. gesehen. Ich glaube jedoch, dass die Verbindungszeichenfolge mit diesen Treibern 'sqlsrv' verwenden sollte.

Gibt es gute Beispiele, wie man dies richtig macht? Wenn ich dies über eine andere Methode tun sollte, lass es mich wissen. Vielen Dank!

21
Drew

Das Beste an PDOs ist, dass der Zugriff auf jede Datenbank ziemlich einfach ist. Vorausgesetzt, Sie haben diese Treiber installiert, sollten Sie in der Lage sein:

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

Beachten Sie, dass aus meiner Erfahrung und auch von anderen ( PHP - Warum ist der neue SQLSRV-Treiber langsamer als der alte mssql-Treiber? ), dass die Verwendung von PDO_SQLSRV viel langsamer ist als durch PDO_ODBC.

Wenn Sie den schnelleren PDO_ODBC verwenden möchten, können Sie Folgendes verwenden:

//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);
10
Jan

Das herausgefunden. Ziemlich einfach:

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

Dies funktioniert für mich und in diesem Fall war eine Remote-Verbindung: Hinweis: Der Port war für mich WICHTIG

$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);
} 
4
Luis
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();

}
0
hassan javaid
$servername = "";
$username = "";
$password = "";
$database = "";
$port = "1433";
try {
    $conn = new PDO("sqlsrv:server=$servername,$port;Database=$database;ConnectionPooling=0", $username, $password,
        array(
            PDO::ATTR_PERSISTENT => true,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        )
    );
} catch (PDOException $e) {
    echo ("Error connecting to SQL Server: " . $e->getMessage());
}
0
mirzaei.sajad