33

Microsoftが提供するドライバーを使用してPDOを使用して既存のSQLServerデータベースに接続しようとしています。

odbc、dblib、mssqlなどを使用した例を見てきましたが、これらのドライバーとの接続文字列は「sqlsrv」を使用する必要があると思いますか?

これを適切に行う方法の良い例はありますか?他の方法でこれを行う必要がある場合は、お知らせください。ありがとう!

4

6 に答える 6

62

PDOの最も優れている点は、どのデータベースにも簡単にアクセスできることです。これらのドライバーをインストールしていれば、次のことができるはずです。

$db = new PDO("sqlsrv:Server=YouAddress;Database=YourDatabase", "Username", "Password");
于 2012-10-05T14:31:14.777 に答える
11

私の経験や他の経験(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);
于 2015-06-28T22:49:07.217 に答える
8

これを理解しました。ものすごく単純:

 new PDO("sqlsrv:server=[sqlservername];Database=[sqlserverdbname]",  "[username]", "[password]");
于 2012-10-05T14:31:03.407 に答える
7

これは私にとってはうまくいき、この場合はリモート接続でした:注:ポートは私にとって重要でした

$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);
} 
于 2016-03-25T01:07:26.343 に答える
2
$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());
}
于 2019-05-19T10:57:30.493 に答える
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();

}
于 2017-04-29T05:45:43.660 に答える