簡體   English   中英

使用 SQL Server 驅動程序通過 PDO 連接到 SQL Server

[英]Connect to SQL Server through PDO using SQL Server Driver

我正在嘗試使用 PDO 和Microsoft 提供驅動程序連接到現有的 SQL Server 數據庫。

我看過使用 odbc、dblib、mssql 等的例子,但是我相信這些驅動程序的連接字符串應該使用 'sqlsrv'?

是否有任何很好的例子來說明如何正確地做到這一點? 如果我應該通過其他方法執行此操作,請告訴我。 謝謝!

嗯,關於 PDO 的最好的部分是它很容易訪問任何數據庫。 如果您已經安裝了這些驅動程序,您應該能夠執行以下操作:

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

請注意,根據我的經驗以及其他( PHP - 為什么新的 SQLSRV 驅動程序比舊的 mssql 驅動程序慢? ),使用 PDO_SQLSRV 比通過 PDO_ODBC 慢得多。

如果您想使用更快的 PDO_ODBC,您可以使用:

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

想通了這一點。 很簡單:

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

這對我有用,在這種情況下是遠程連接:注意:端口對我來說很重要

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM