使用SQL Server通过PDO连接到SQL Server驱动程序
我试图使用PDO与drivers provided by Microsoft连接到现有的SQL Server数据库。使用SQL Server通过PDO连接到SQL Server驱动程序
我看过使用odbc,dblib,mssql等的例子,但是我相信这些驱动程序的连接字符串应该使用'sqlsrv'?
有没有什么好的例子说明如何正确地做到这一点?如果我应该通过其他方法来做到这一点,请告诉我。谢谢!
那么这是关于PDO的最好的部分是它很容易访问任何数据库。只要你已经安装了这些驱动程序,你应该能够只是做:
$db = new PDO("sqlsrv:Server=YouAddress;Database=YourDatabase", "Username", "Password");
想通了。很简单:
new PDO("sqlsrv:server=[sqlservername];Database=[sqlserverdbname]", "[username]", "[password]");
你要知道,在我的经验,也是其他(PHP - Why is new SQLSRV driver slower than the old mssql driver?),使用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);
你可以检查我的问题相关http://serverfault.com/questions/722670/s1090unixodbcdriver-managerinvalid-string-or-buffer-length –
这不适合我用花括号。对于SQL Server'$ mssqldriver ='ODBC Driver 11';' –
,在旧服务器上,sqlsrv驱动程序不会连接。这为我节省了一大笔时间。谢谢! –
这个工作对我来说,在这种情况下是一个远程连接: 注:港口是重要的,我
$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);
}
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();
}
感谢您成为Stackoverflow的十个问题中的第一个,以获得正确的连接参数。我所看到的其他样本都有“主机”而不是“服务器”。 – Mark