Подтвердить что ты не робот

Подключение к SQL Server через PDO с использованием драйвера SQL Server

Я пытаюсь подключиться к существующей базе данных SQL Server с помощью PDO с драйверами, предоставленными Microsoft.

Я видел примеры с использованием odbc, dblib, mssql и т.д., однако я считаю, что строка подключения с этими драйверами должна использовать "sqlsrv"?

Есть ли хорошие примеры того, как правильно это сделать? Если я буду делать это с помощью другого метода, пожалуйста, дайте мне знать. Спасибо!

4b9b3361

Ответ 1

Хорошо, что лучшая часть PDOs заключается в том, что довольно легко получить доступ к любой базе данных. Если вы установили эти драйверы, вы должны иметь возможность:

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

Ответ 2

Учтите, что в моем опыте, а также в другом (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);

Ответ 3

Выяснил это. Довольно просто:

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

Ответ 4

Это работает для меня, и в этом случае это удаленное соединение: Примечание: Порт был ВАЖНО для меня

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

Ответ 5

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

}

Ответ 6

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