PHP-PDO 错误 : An invalid keyword 'host' was specified in the DSN string

标签 php sql-server pdo

尝试连接到 smarterasp.net dns 上的 mssql 服务器,但到目前为止没有成功。之前与驱动程序有问题。安装它们并且它们运行良好(将它们添加到 php.ini 中)

使用 php 版本:5.6,将以下内容添加到 php.ini 以便 php-pdo-mssql 工作:

  • extension=php_pdo_sqlsrv_56_nts.dll
  • extension=php_pdo_sqlsrv_56_ts.dll
  • extension=php_sqlsrv_56_nts.dll
  • extension=php_sqlsrv_56_ts.dll

到目前为止我对这段代码做了什么:

<?php
 try {
     $conn = new PDO("sqlsrv:host=host_name_string;dbname=database_name_string", "username_string", "password_string");

     // set the PDO error mode to exception
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     echo "Connected successfully"; 
 }
 catch(PDOException $e)
 {
     echo "Connection failed: " . $e->getMessage();
 }

?>
  • 我输入了数据库而不是 dbname,它不起作用
  • 我用数据库代替了 dbname,它不起作用
  • 我在主机名示例后添加了端口 1433:

"sqlsrv:host=host_name_string,1433;Database=database_name_string"

没用

  • 我是这样在主机名example后面加上1433端口的

"sqlsrv:host=host_name_string;port=1433;Database=database_name_string"

没用

我已经测试了与我的 SQL 服务器管理工​​作室的连接和给定的数据(我在这里用作参数的值 100% 正常)

我还有哪些其他选择?

最佳答案

连接的正确格式是:

$conn = new PDO("sqlsrv:Server=localhost;Database=testdb", "UserName", "Password"); 

来自手册页:PDO_SQLSRV DSN

关于PHP-PDO 错误 : An invalid keyword 'host' was specified in the DSN string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213104/

相关文章:

php - 为什么我不能遍历 $q->fetch() 两次?

php - 如何指定从哪个列位置开始从excel到mysql的数据导入

php - LinkedIn Share API 'ugcPosts' 响应 504 PHP 网关超时(WordPress)

php - 使用 PHP 连接 MAMP 服务器上的 mySQL 数据库

SQL,数字辅助表

sql-server - 无法加载 Microsoft.SqlServer.BatchParser 或其依赖项之一

sql-server - 关于最大限度地减少 MS SQL Server 中仅附加表上的锁定的建议?

php - 为什么这个 PDO 语句会默默地失败?

mysql - magento 模块中 observer.php 的用途是什么

php - 在 Yii 2 项目中配置 Braintree