如何将 Laravel 8 连接到 oracle 11g 数据库?

Posted

技术标签:

【中文标题】如何将 Laravel 8 连接到 oracle 11g 数据库?【英文标题】:How to connect Laravel 8 to oracle 11g database? 【发布时间】:2021-01-14 22:06:35 【问题描述】:

我正在尝试将 Laravel 8 连接到 Oracle 11g 数据库,我尝试了所有可能的解决方案,但没有成功。 这是我的系统属性:

    Windows 8.1 64 位。 Laravel 8. Oracle 11g。 Xampp 64 位。 php 7.4.10

这是错误信息: C:\xampp\htdocs>composer require yajra/laravel-oci8 PHP 警告:PHP 启动:无法加载动态库“php_oci8_11g”(尝试: C:\xampp\php\ext\php_oci8_11g(%1 不是有效的 Win32 应用程序。),C:\xampp php\ext\php_php_oci8_11g.dll(找不到指定的模块。))在Unkn 在第 0 行拥有 . . . 下图说明了问题:

【问题讨论】:

你缺少那个扩展,可能你只需要编辑你的 php.ini 并重新加载 php-fpm。 【参考方案1】:

您需要在 php.ini 文件中取消注释 extension=oci8_12c 并确保 php_oci8_12c.dll 文件在您的 ext 文件夹中。

【讨论】:

我使用的是 oracle 11g (php_oci8_11g.dll),并且我取消了对 extension=php_oci8_11g 的注释。【参考方案2】:

通过在 php.ini 中删除 ; 之前的 ; 来取消注释 extension=oci8_12c,然后使用 service php-fpm restartservice php7-fpm restart 重新加载 php-fpm 将 7 替换为您的 php 版本。

好像移动到pecl,下载dll文件放到xampp\php\ext\目录下。如果存在,请替换它,重新启动您的 xampp,现在应该可以了。

【讨论】:

我使用的是 oracle 11g (php_oci8_11g.dll),并且我取消了对 extension=php_oci8_11g 的注释。 @Jon 我的理解是,你的扩展应该在那里,你不需要安装,它仍然,你可以使用php -m 并检查你是否可以看到扩展,如果没有,我们需要安装它。 我使用php -m时扩展不存在。 @Jon 检查更新的答案,下载 dll 并将其放置在正确的路径中,重新启动您的 xampp。 @Jon 任何进展和更新,如果你让我知道目前的状态是什么,那么只有我可以帮助你。

以上是关于如何将 Laravel 8 连接到 oracle 11g 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 如何将表格从帖子连接到类别

如何将 SQL 开发人员/Toad 连接到 Oracle 8i

如何将带有前缀列的表连接到 PHP MySQL 或 Laravel 中的另外两个表

如何将 JDBC 连接到 tns oracle

如何将 Spring Boot JAR 连接到远程 Oracle 数据库?

如何使用 python 子进程模块将 sqlplus 作为 sudo 连接到 oracle 用户?