php链接sql server报错Fatal error: Call to undefined function mssql_connect()

本文介绍了解决PHP 5.3以上版本连接MSSQL的问题。通过使用正确的扩展文件php_dblib.dll而非php_mssql.dll,成功实现了在Windows环境下通过FreeTDS连接MSSQL。文章还提供了配置步骤及验证方法。

php版本5.3.5

操作系统win7


使用mssql方式链接:

$hostname = '192.168.0.178:1435';
$username = 'test';
$password = 'test';

mssql_connect($hostname, $username, $password);


程序报错:


Fatal error: Call to undefined function mssql_connect()


使用phpinfo(),显示没有mssql信息


查看php.ini,已经有:

extension=php_mssql.dll


经验证,和上面的扩展无关,需要另一扩展:

extension=php_dblib.dll


加入之后重启apache,显示:


mssql

MSSQL Support enabled
Active Persistent Links 0
Active Links 0
Library version FreeTDS

Directive Local Value Master Value
mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.charset no value no value
mssql.compatability_mode Off Off
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unlimited Unlimited
mssql.max_procs Unlimited Unlimited
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection On On
mssql.textlimit Server default Server default
mssql.textsize Server default Server default
mssql.timeout 60 60


此文:http://www.lifangjin.com/archives/949

次下载地址:http://docs.moodle.org/20/en/Installing_MSSQL_for_PHP#Using_FreeTDS_on_Windows


另有此文:

http://blog.youkuaiyun.com/q356309936/article/details/7838260

http://www.th7.cn/Program/php/201303/129462.shtml


说明php5.3以上已不是原生支持mssql,也就是说,使用php_dblib.dll来支持mssql,而不是php_mssql.dll


当遇到 “Fatal error: Uncaught Error: Call to undefined function mysqli_connect()” 错误时,可按以下方法解决: ### 1. 检查 PHP 版本及 mysqli 扩展是否启用 在 PHP 7.x 及后续版本中,`mysql_connect()` 函数已被弃用,需使用 `mysqli_connect()` 函数。要使用该函数,PHP 必须启用 mysqli 扩展。可通过以下步骤检查和启用: - **查看 php.ini 文件**:找到并打开服务器上的 `php.ini` 文件。在文件中搜索 `;extension=mysqli`,将其前面的分号 `;` 去掉,改为 `extension=mysqli`,以此启用 mysqli 扩展。 - **重启 Web 服务器**:修改 `php.ini` 文件后,需重启 Web 服务器(如 Apache 或 Nginx)和 PHP-FPM(如果使用),使配置生效。 - **验证扩展是否启用**:创建一个包含以下代码的 PHP 文件,如 `test.php`: ```php <?php phpinfo(); ?> ``` 将该文件上传到服务器的 Web 目录,通过浏览器访问此文件(例如:`http://yourdomain.com/test.php`)。在页面中搜索 `mysqli`,若能找到相关信息,表明 mysqli 扩展已启用。 ### 2. 检查 PHP 安装是否完整 若 mysqli 扩展已启用但问题依旧,可能是 PHP 安装不完整。可重新安装 PHP 并确保在安装过程中包含 mysqli 扩展。不同操作系统的安装方法不同,以下是部分常见系统的示例: - **Ubuntu/Debian**:使用以下命令安装 PHP 和 mysqli 扩展: ```bash sudo apt-get update sudo apt-get install php php-mysql ``` - **CentOS/RHEL**:使用以下命令安装: ```bash sudo yum install php php-mysqlnd ``` ### 3. 检查代码中是否存在拼写错误 确保在代码中正确调用了 `mysqli_connect()` 函数,无拼写错误。例如: ```php <?php $con = mysqli_connect("localhost", "root", "数据库密码", "数据库名"); if (!$con) { die("连接错误: " . mysqli_connect_error()); } ?> ``` ### 4. 检查 Web 服务器配置 有时,Web 服务器可能使用了不同的 PHP 配置文件。需确保修改的是当前 Web 服务器使用的 `php.ini` 文件。可通过在 PHP 代码中使用 `php_ini_loaded_file()` 函数查看当前加载的 `php.ini` 文件路径: ```php <?php echo php_ini_loaded_file(); ?> ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值