Call to undefined function odbc_connect() php 7
我正在测试php 7,并遇到此错误:
致命错误:未捕获错误:调用未定义函数odbc_connect()
在doc页面上:http://php.net/manual/en/function.odbc-connect.php php 7未列为受支持。
有人能解决这个问题吗?或者知道何时会支持它吗?
谢谢@
用doc编写:ODBC支持不需要任何扩展dll。在PHP 5.x中确实如此,我必须从ini文件中删除" extension = php_odbc.dll "。
但是在PHP 7中,我不得不将其放回原处。
我再次在新的PHP 7目录中找到文件" ext / php_odbc.dll "。它对我有用:)。
DOC页面的确列出了PHP 7,因此只需安装php-odbc,您应该一切顺利。当前我自己在RedHat EL7上与Remi php7一起使用它。
PHP 7.2.7,将数据库用作MS Access或Sql Server时,在php.ini文件中添加extension = php_odbc.dll
C:\\\\\\\\ xxxxxx \\\\\\\\ php \\\\\\\\ php.ini
*扩展名前没有分号= php_odbc.dll
我遇到了同样的问题。但是,根据您提供的链接,实际上支持PHP7。因此,我不确定您为什么会有这么多的注释告诉您重新编写代码。
这最??终为我解决了这个问题:
1 | sudo apt-get install php-odbc |
接着重新启动Apache。
来自php.ini文件:
1 2 3 4 | > ; 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。显式
1 | extension=odbc |
为我工作(建议使用新语法)
编辑:
如果您的架构是x64
您必须使用C:\\\\\\\\ Windows \\\\\\\\ SysWOW64 \\\\\\\\\\ odbcad32.exe
而不是C:\\\\\\\\ Windows \\\\\\\\ system32 \\\\\\\\\\ odbcad32.exe
只需删除分号并重新启动Apache,即可扩展" php_odbc.dll "扩展名。
如果php.ini中没有这样的行,只需添加以下内容即可在您自己上创建它(您将在php.ini中找到许多类似的行):
如果Apache无法启动或无法加载php_odbc.dll,请查看PHP的ext-Folder(如果存在名为php_odbc.dll的DLL)。如果没有这样的DLL,则Xampp / PHP7本身不支持ODBC。在这种情况下,您应该使用PHP 5.x
安装较旧的Xampp版本。
这是错误消息:
Redhat PHP Fatal error: Uncaught Error: Call to undefined function
odbc_connect()
在Redhat Linux 7上运行:
1 | yum install php-odbc |
您将获得以下标记为红色的软件包:
通过php命令行运行测试您的连接的代码示例:php [filename] .php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?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\ "); } // close the connection odbc_close($connect); ?> |
享受!