调用未定义函数 oci_connect, php_oci8_11g.dll , windows 10, php5.6.24
Call to undefined function oci_connect, php_oci8_11g.dll , windows 10, php5.6.24
我有一个简单的 php 脚本:
<?php
$DB = '//10.11.201.170:1521/XE';
$DB_USER = 'BIOTPL';
$DB_PASS = 'biotpl';
$DB_CHAR = 'AL32UTF8';
$conn = oci_connect($DB_USER, $DB_PASS, $DB, $DB_CHAR);
if($conn)
{
echo "Successfully connected to Oracle.\n";
OCILogoff($c);
//$statement = oci_parse($conn, 'select 1 from dual');
//oci_execute($statement);
//$row = oci_fetch_array($statement, OCI_ASSOC+OCI_RETURN_NULLS);
}
else
{
$err = OCIError();
echo "Connection failed." . $err[text];
}
?>
当我 运行 它(从浏览器或命令行)时,我收到错误::
Call to undefined function oci_connect
我正在使用 php 5.6.24。我已将 php_oci8.dll 和 php_oci8_11g.dll 复制到 /ext 文件夹。我有
extension=php_oci8.dll
extension=php_oci8_11g.dll
在我的 php.ini
我已经安装了 instant client_11_2 - 尝试了 32 位版本。我有 ORACLE_HOME 和 TNS_ADMIN 环境变量指向即时客户端文件夹 ( C:\instantclient_11_2 ).
几天来我花了几个小时尝试不同的事情,但都无济于事。
我已经安装了 Microsoft Visual C++ 2010 Runtime (x86)。这是 OCI8 扩展所必需的。我已经安装了 Microsoft Visual C++ 2012 Runtime (x86)。这是 PHP.
所需要的
当我尝试以下命令时:
php --ri oci8
我有以下错误:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8.dll' - %1 is not a valid Win32 application.
in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8.dll' - %1 is not a valid Win32 application.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application.
in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application.
in Unknown on line 0
Extension 'oci8' not present.
如何消除以下错误?
Fatal error: Call to undefined function oci_connect()
您收到 OCI8 扩展的启动错误,表明您使用的 dll 不支持您的 php 版本。您需要使用正确的,对于 PHP 5.6.x - 是以下之一:
您需要选择与您的体系结构(x86 或 x64)、编译器(vc 9、11、14)和线程安全 (ts) 或非线程安全 (nts) 相匹配的那个php 版本,例如如果你是 运行 线程安全的 PHP 5.6.24,在 x86 上用 vc11 编译,你会使用
php_oci8-2.0.8-5.6-ts-vc11-x86.zip
-------- ----- --- -- ---- --- ---
^ ^ ^ ^ ^ ^ ^
| | | | | | \_____ extension
| | | | | \_________ architecture
| | | | \______________ compiler
| | | \_________________ thread-safety mode
| | \_____________________ php version
| \___________________________ extension version
\____________________________________ extension name
如果没有匹配你的PHP的下载,则说明它不存在,需要你自己编译。更多信息请见 http://windows.php.net
附带说明:除上述之外,您一次只能使用一个 oci 扩展。您同时获得了(php_oci8.dll 和 php_oci8_11g.dll)。确保删除不需要的那个。
您一次只能启用其中一项:
extension=php_oci8.dll
extension=php_oci8_11g.dll
它们都启用相同的 OCI8 扩展,但需要不同的 Oracle Instant Client 版本。你说你使用的是 Instant Client 11.2,所以把第一个扩展注释掉。
确保将 Instant Client 目录添加到 PATH
。
我有一个简单的 php 脚本:
<?php
$DB = '//10.11.201.170:1521/XE';
$DB_USER = 'BIOTPL';
$DB_PASS = 'biotpl';
$DB_CHAR = 'AL32UTF8';
$conn = oci_connect($DB_USER, $DB_PASS, $DB, $DB_CHAR);
if($conn)
{
echo "Successfully connected to Oracle.\n";
OCILogoff($c);
//$statement = oci_parse($conn, 'select 1 from dual');
//oci_execute($statement);
//$row = oci_fetch_array($statement, OCI_ASSOC+OCI_RETURN_NULLS);
}
else
{
$err = OCIError();
echo "Connection failed." . $err[text];
}
?>
当我 运行 它(从浏览器或命令行)时,我收到错误::
Call to undefined function oci_connect
我正在使用 php 5.6.24。我已将 php_oci8.dll 和 php_oci8_11g.dll 复制到 /ext 文件夹。我有
extension=php_oci8.dll
extension=php_oci8_11g.dll
在我的 php.ini 我已经安装了 instant client_11_2 - 尝试了 32 位版本。我有 ORACLE_HOME 和 TNS_ADMIN 环境变量指向即时客户端文件夹 ( C:\instantclient_11_2 ).
几天来我花了几个小时尝试不同的事情,但都无济于事。
我已经安装了 Microsoft Visual C++ 2010 Runtime (x86)。这是 OCI8 扩展所必需的。我已经安装了 Microsoft Visual C++ 2012 Runtime (x86)。这是 PHP.
所需要的当我尝试以下命令时:
php --ri oci8
我有以下错误:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8.dll' - %1 is not a valid Win32 application.
in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8.dll' - %1 is not a valid Win32 application.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application.
in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application.
in Unknown on line 0
Extension 'oci8' not present.
如何消除以下错误?
Fatal error: Call to undefined function oci_connect()
您收到 OCI8 扩展的启动错误,表明您使用的 dll 不支持您的 php 版本。您需要使用正确的,对于 PHP 5.6.x - 是以下之一:
您需要选择与您的体系结构(x86 或 x64)、编译器(vc 9、11、14)和线程安全 (ts) 或非线程安全 (nts) 相匹配的那个php 版本,例如如果你是 运行 线程安全的 PHP 5.6.24,在 x86 上用 vc11 编译,你会使用
php_oci8-2.0.8-5.6-ts-vc11-x86.zip
-------- ----- --- -- ---- --- ---
^ ^ ^ ^ ^ ^ ^
| | | | | | \_____ extension
| | | | | \_________ architecture
| | | | \______________ compiler
| | | \_________________ thread-safety mode
| | \_____________________ php version
| \___________________________ extension version
\____________________________________ extension name
如果没有匹配你的PHP的下载,则说明它不存在,需要你自己编译。更多信息请见 http://windows.php.net
附带说明:除上述之外,您一次只能使用一个 oci 扩展。您同时获得了(php_oci8.dll 和 php_oci8_11g.dll)。确保删除不需要的那个。
您一次只能启用其中一项:
extension=php_oci8.dll
extension=php_oci8_11g.dll
它们都启用相同的 OCI8 扩展,但需要不同的 Oracle Instant Client 版本。你说你使用的是 Instant Client 11.2,所以把第一个扩展注释掉。
确保将 Instant Client 目录添加到 PATH
。