【发布时间】:2021-05-09 21:42:36
【问题描述】:
我正在尝试连接到使用 sqlserver 的外部数据库,但在尝试了许多选项后根本找不到一个有效的选项。
$connattempt1 = odbc_connect("Driver={SQL Server Native Client 10.0};Server=XXX.XXX.XXX.XX;1433;Database=IDD",'username','password');
$connattempt2 = new PDO('sqlsrv:Server=XXX.XXX.XXX.XX,1433;Database=IDD','username','password');
$connattempt3 = sqlsrv_connect('XXX.XXX.XXX.XX', [
"Database" => IDD,
"UID" => 'username',
"PWD" => 'password',
"CharacterSet" => "UTF-8"
]);
我将在几个 apache 服务器上运行相同的代码,所有这些服务器都在 php7 上。我正在寻找一种无需编辑所有服务器上的 php.ini 或导入外部库的连接方式。 有没有正确建立这种连接的标准方法? 也欢迎任何线索、手册、提示、链接,谢谢!
【问题讨论】:
-
一个小提示 - 在第三次尝试中,您需要用引号将数据库名称括起来:
"Database" => "IDD",但是,您从这三个调用中的每一个都收到什么错误消息? -
您为什么使用 SQL Server Native Client 而不是 ODBC Driver for SQL Server? SQL Server Native Client has been deprecated 有一段时间了。
-
另外,除非我记错了,SQL Server 2012+ 附带 SQLNCLI 11.0 版;因此,您使用的(SQLNCLI)版本不支持任何当前支持的 SQL Server 版本(包括扩展支持的版本)。我不知道您尝试连接到哪个版本的 SQL Server,但如果它是受支持的版本(2012+),那么您使用的驱动程序不太可能正确支持它。
-
@Zhorov 我正在调用未定义的函数 odbc_connect() (对所有其他函数以此类推)。在询问经理之后似乎只是我的 apache 问题。我检查了我们是否在其他实例上正确安装了这些库。我想我必须安装然后启用它们。他们没有附带基本的 xammp 安装,所以如果我在安装软件包后设法修复它,我会告诉你们所有人
-
@Mbotet 是的,您需要安装驱动程序(作为 PHP 扩展)。并且可能 PDO 方法应该是您的首选。
标签: php sql-server php-7