PDO::__construct

下载 PHP 驱动程序

创建与 SQL Server 数据库的连接。

语法

  
PDO::__construct($dsn [,$username [,$password [,$driver_options ]]] )  

参数

$dsn:包含前缀名(始终是 sqlsrv)、冒号和 Server 关键字的字符串。 例如,"sqlsrv:server=(local)"。 你可以选择指定其他连接关键字。 有关 Server 关键字和其他连接关键字的介绍,请参阅 Connection Options 。 因为整个 $dsn 包含在引号中,所以每个连接关键字不应单独引用。

$username:可选。 包含用户名的字符串。 若要使用 SQL Server 身份验证进行连接,请指定登录 ID。 若要使用 Windows 身份验证进行连接,请指定 ""

$password:可选。 包含用户密码的字符串。 若要使用 SQL Server 身份验证进行连接,请指定密码。 若要使用 Windows 身份验证进行连接,请指定 ""

$driver_options:可选。 你可以指定 PDO 驱动程序管理器属性和 Microsoft Drivers for PHP for SQL Server 特定驱动程序属性 -- PDO::SQLSRV_ATTR_ENCODING、PDO::SQLSRV_ATTR_DIRECT_QUERY。 无效属性不会生成异常。 当使用 PDO::setAttribute指定时,无效属性会生成异常。

返回值

返回 PDO 对象。 如果失败,则返回 PDOException 对象。

例外

PDOException

注解

你可以通过将实例设置为 NULL 来关闭连接对象。

连接后,PDO::errorCode 将显示 01000 而非 00000。

如果 PDO::__construct 出于任何原因而失败,将引发异常,即使将 PDO::ATTR_ERRMODE 设置为 PDO::ERRMODE_SILENT 也是如此。

已在 Microsoft Drivers for PHP for SQL Server的版本 2.0 中添加了对 PDO 的支持。

使用数据库的示例

此示例显示如何使用 Windows 身份验证连接到服务器,以及如何指定数据库。

<?php  
   $c = new PDO( "sqlsrv:Server=(local) ; Database = AdventureWorks ", "", "", array(PDO::SQLSRV_ATTR_DIRECT_QUERY => true));   
  
   $query = 'SELECT * FROM Person.ContactType';   
   $stmt = $c->query( $query );   
   while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ) {   
      print_r( $row );   
   }  
   $c = null;   
?>  

不使用数据库的示例

此示例显示如何连接到服务器,从而指定更高版本的数据库。

<?php  
   $c = new PDO( "sqlsrv:server=(local)");  
  
   $c->exec( "USE AdventureWorks2022" );  
   $query = 'SELECT * FROM Person.ContactType';  
   $stmt = $c->query( $query );  
   while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){  
      print_r( $row );  
   }  
   $c = null;  
?>  

另请参阅

PDO 类

PDO