无需安装驱动,PHP连接Microsoft SQL Server 2014解决方案问询
PHP连接SQL Server 2014(无需额外安装驱动方案)
我完全懂你在共享主机上的难处——不能装第三方扩展确实卡了不少常规路子,但既然服务商明确说支持常规ODBC连接,那咱们可以靠PHP原生的odbc_connect()函数搞定,这个方案不需要额外装PDO_sqlsrv或者sqlsrv扩展,只要主机的PHP已经启用了ODBC原生扩展就行。
第一步:确认ODBC扩展是否启用
先在你的PHP文件里加一行phpinfo();,运行后搜索「ODBC」,如果看到「ODBC Support enabled」的条目,说明扩展已经开了,可以继续下一步。要是没找到,联系服务商开启这个基础扩展就行——大部分共享主机都会默认启用它。
第二步:构造DSN-less ODBC连接字符串
针对SQL Server 2014,有两个靠谱的系统级驱动可选(都是服务商大概率已经预装的):
- SQL Server Native Client 11.0:SQL Server 2014对应的官方原生客户端驱动
- ODBC Driver 11 for SQL Server:微软推出的通用ODBC驱动,完美兼容2014版本
下面是具体的连接代码示例:
<?php // 替换成你的数据库信息 $server = "你的SQL服务器地址,1433"; // 默认端口1433,自定义端口记得修改 $dbName = "目标数据库名"; $user = "数据库账号"; $pass = "数据库密码"; // 二选一即可,哪个能用用哪个 // 选项1:用SQL Server Native Client 11.0 $connStr = "Driver={SQL Server Native Client 11.0};Server=$server;Database=$dbName;Uid=$user;Pwd=$pass;CharSet=UTF8;"; // 选项2:用ODBC Driver 11 for SQL Server // $connStr = "Driver={ODBC Driver 11 for SQL Server};Server=$server;Database=$dbName;Uid=$user;Pwd=$pass;CharSet=UTF8;"; // 建立连接 $conn = odbc_connect($connStr, "", ""); if (!$conn) { die("连接失败: " . odbc_errormsg()); } // 示例:执行查询并输出结果 $sql = "SELECT TOP 3 * FROM 你的表名"; $result = odbc_exec($conn, $sql); while ($row = odbc_fetch_array($result)) { print_r($row); } // 用完记得关闭连接 odbc_close($conn); ?>
几个关键注意点
- 驱动名称适配:如果其中一个驱动连不上,立刻换另一个——不同主机环境预装的驱动版本可能不一样
- 端口号别漏:要是你的SQL Server没用到默认的1433端口,一定要在服务器地址后面加
,端口号 - 字符集防乱码:连接字符串里加
CharSet=UTF8;可以避免中文乱码,根据你的数据库实际字符集调整就行 - 权限验证:确保你的数据库账号有访问目标库的权限,而且服务商已经开放了PHP服务器到SQL Server的网络访问权限
要是还是报错,直接用odbc_errormsg()看具体错误信息——大部分问题都是驱动名称错了、服务器地址/端口不对,或者账号权限不够导致的。
内容的提问来源于stack exchange,提问作者A Friend
相关产品推荐
相关产品推荐

