【问题标题】:can not connect to oracle database using php无法使用php连接到oracle数据库
【发布时间】:2016-08-12 18:16:27
【问题描述】:

我正在使用 XAMPP 5.6.15 版在 Windows 10 上运行我的 PHP 文件。

但我收到此错误消息:

致命错误:在第 4 行调用 F:\xampp\htdocs\Sbank\index.php 中未定义的函数 oci_connect()

根据 PHP docs 一切都应该可以正常工作。

<?php

$conn = oci_connect('admin', 'admin', 'localhost/JDT');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT sysdate FROM dual');
oci_execute($stid);

echo $stid;


?>

【问题讨论】:

  • OCI8 扩展是否启用?
  • @Fairy 我删除了 ;在 php.ini 文件中的 extension=php_oci8_11g.dll 之前

标签: php oracle


【解决方案1】:

请确保您已启用 OCI8 扩展。 检查phpinfo()extension_loaded ('extension name') 的输出 或在 CLI php -m

【讨论】:

  • 我删除了 ;在 php.ini 文件中的 extension=php_oci8_11g.dll 之前和 phpinfo() 页面已加载,但我真的不明白我要检查什么?
  • 启用扩展后(在php.ini 中的扩展名之前删除;)重新启动apache 并尝试运行脚本。
  • 同样的错误调用未定义函数oci_connect()
  • 详情请查看Installing OCI8 on Windows部分,希望对您有所帮助。
  • 感谢您的帮助,再次检查一下希望找出问题所在>
【解决方案2】:

如果安装了即时客户端但完整的 oracle 客户端 还没有,你可以用pdo连接oracle数据库 像下面的编码:

<?php
$tns = " 
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = yourip)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
       ";
$db_username = "youname";
$db_password = "yourpassword";
try{
    $conn = new PDO("oci:dbname=".$tns,$db_username,$db_password);
}catch(PDOException $e){
    echo ($e->getMessage());
}
?>

来源:http://php.net/manual/en/ref.pdo-oci.php

【讨论】:

  • 我尝试使用您的代码而不是我的代码,但收到错误消息说找不到驱动程序
  • 它是否适用于 xampp Apache 服务器?
【解决方案3】:

通过以下 youtube.com 教程中的详细步骤解决问题

youtube link

【讨论】:

    猜你喜欢
    • 2012-03-14
    • 2019-10-18
    • 2020-01-02
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 2019-08-25
    相关资源
    最近更新 更多