【发布时间】:2016-03-16 00:51:33
【问题描述】:
我将我的 PHP 5.6.30 (https://www.apachefriends.org/de/download.html) 升级到 PHP 7.0 (https://bitnami.com/stack/wamp/installer)
到目前为止一切正常,当我使用 MySQL 数据库时,它将我的页面的加载时间从 1.2 秒减少到约 300 毫秒。但现在我正在尝试使用以下简单脚本连接到 MSSQL 数据库,该脚本适用于我的旧安装(PHP 5.6):
<?php
//Use the machine name and instance if multiple instances are used
$server = 'Server-Adress';
$user = '';
$pass = '';
//Define Port
$port='Port=1433';
$database = 'Databasename';
$connection_string = "DRIVER={SQL Server};SERVER=$server;$port;DATABASE=$database";
$conn = odbc_connect($connection_string,$user,$pass);
if ($conn) {
echo "Connection established.";
} else{
die("Connection could not be established.");
}
$sql = "SELECT * FROM st3_200 WHERE identifier = 1";
$result = odbc_exec($conn,$sql);
// Get Data From Result
while ($data[] = odbc_fetch_array($result));
// Free Result
odbc_free_result($result);
// Close Connection
odbc_close($conn);
// Show data
print_r($data);
?>
但现在我的日志中有一条错误消息:
[2015 年 12 月 10 日星期四 11:55:26.629956] [:error] [pid 260:tid 968] [client ::1:63003] PHP 致命错误:未捕获错误:调用未定义 函数 odbc_connect() 在 C:\Bitnami\wampstack-7.0.0-0\apache2\htdocs\test\query.php:11\nStack 跟踪:\n#0 {main}\n 抛出 C:\Bitnami\wampstack-7.0.0-0\apache2\htdocs\test\query.php 上 第 11 行
首先我认为我的 php.ini 缺少扩展名,所以我启用了“extension=php_pdo_odbc.dll”
与 5.6 版本中的 php.ini 的不同之处在于扩展名: “extension=php_mssql.dll”已启用。但我在新的 PHP 7.0.ini 中找不到它们
所以我的意思是现在还没有 odbc 和 PHP 7 的驱动程序吗? 我在这里找到了一些 Linux 驱动程序: https://aur.archlinux.org/packages/php7-odbc/
但我需要一些适合我的 Windows 环境的东西。
有没有人遇到过同样的问题并且已经解决了?
感谢和问候 多米
【问题讨论】:
-
您的代码正在使用 ODBC 扩展,但您正在尝试加载两个不相关的扩展(一个 PDO 驱动程序和一个很好的旧 MSSQL 扩展)。
-
php_pdo_odbc.dll不是 odbc 扩展,它是 PDO 的 ODBC 驱动程序。你想要php_odbc.dll
标签: php sql-server windows odbc php-7