调用未定义的函数odbc_connect()php 7

时间:2015-12-16 20:12:40

标签: php

我正在测试php 7并遇到了这个错误:

致命错误:未捕获错误:调用未定义函数odbc_connect()

从文档页面:http://php.net/manual/en/function.odbc-connect.php php 7未列为支持。

有没有人可以解决这个问题,或者知道何时会支持它?

感谢@

7 个答案:

答案 0 :(得分:15)

在doc中写道:ODBC支持不需要任何扩展dll。在PHP 5.x中确实如此,我不得不删除" extension = php_odbc.dll"来自ini文件。
但是在PHP 7中我不得不把它放回去。

我找到了文件" ext / php_odbc.dll"再次在新的PHP 7目录中。它对我有用:)。

答案 1 :(得分:3)

我遇到了同样的问题。但是根据您提供的链接,PHP7实际上是受支持的。所以我不确定你为什么要这么多评论告诉你重新编写代码。

这最终解决了我的问题:

    RewriteEngine On
  RewriteRule ^([^\.]+)$ $1.php [NC,L]
  RewriteRule ^/(\d+)*$ ./data.php?chn=$1

然后重启Apache。

答案 2 :(得分:1)

DOC页面确实列出了PHP 7,所以只需安装php-odbc就可以了。目前我自己在RedHat EL7上使用Remi php7。

答案 3 :(得分:1)

通过删除分号并重新启动Apache,只需输入“php_odbc.dll”扩展名即可。

如果php.ini中没有这样的行,只需自己创建(你会在php.ini中找到许多类似的行),添加:numpy.equal(x, None)然后重启Apache。

如果Apache没有启动或无法加载php_odbc.dll,请查看PHP的ext-Folder,如果有这样一个名为php_odbc.dll的DLL。如果没有这样的DLL,Xampp / PHP7本身不支持ODBC。在这种情况下,您应该使用PHP 5.x

安装较旧的Xampp版本

答案 4 :(得分:1)

PHP 7.2.7,同时将数据库用作MS Access或Sql Server时,在 php.ini 文件中添加 extension = php_odbc.dll C:\ xxxxxx \ php \ php.ini

*在 extension = php_odbc.dll 之前没有分号

答案 5 :(得分:1)

从php.ini文件中:

> ; Notes for Windows environments :
> ;
> ; - ODBC support is built in, so no dll is needed for it.
> ; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)

但是,在PHP 7中,默认情况下不是ODBC。明确

extension=odbc

为我工作(建议使用新语法)

编辑: 如果您的架构是x64 您必须使用C:\ Windows \ SysWOW64 \ odbcad32.exe 而不是C:\ Windows \ system32 \ odbcad32.exe

答案 6 :(得分:0)

这是错误消息:

Redhat PHP致命错误:未捕获错误:调用未定义函数 odbc_connect()

在Redhat Linux 7上运行:

yum install php-odbc

您将用红色标记以下软件包:

enter image description here

通过php命令行运行测试您的连接的代码示例:php [filename] .php

<?php
// filename: test-connection.php by running command -> php test-connection.php
$connect = odbc_connect("Driver=FreeTDS; Server=sbase.company.ca; Port=1433; TDS_Version=8; ClientCharset=UTF-8; Database=mydbase",'company\\user', 'password');
$query = "SELECT * from mytable";
// perform the query
$result = odbc_exec($connect, $query);
// fetch the data from the database
while(odbc_fetch_row($result)){
        $suid = odbc_result($result, 1);
        $uid = odbc_result($result, 2);
        $gid = odbc_result($result, 3);
        $name = odbc_result($result, 4);
        print("$name|$suid|$uid|$gid\n");
}
// close the connection
odbc_close($connect);
?>

享受!