从托管在 Heroku 的在线 PHP 站点连接数据库

Posted

技术标签:

【中文标题】从托管在 Heroku 的在线 PHP 站点连接数据库【英文标题】:Connect database from online PHP site hosted in Heroku 【发布时间】:2020-12-21 07:43:31 【问题描述】:

我最近使用 Heroku 创建了一个 php 网站并在线托管它。但是,我无法连接我的数据库,因为我使用了我的在线站点中的 localhost phpmyadmin 数据库。我应该如何从我的在线站点连接我的本地主机数据库?或者如何使我的主机我的数据库在线,然后建立连接?这是我的 db.php 文件,用于与 mysqli 建立连接,以防万一需要调整 db 连接 PHP 代码。

//step 1: Establish database connection
DEFINE("DB_HOST", 'localhost');
DEFINE("DB_USER", 'root');
DEFINE("DB_PASS", '');
DEFINE("DB_NAME", 'my_db_name');
// Create connection
$con = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
// Set charset to UFT8
mysqli_set_charset($con, "utf8");
// Check connection
if (!$con) 
    die("Connection failed: " . mysqli_connect_error());

【问题讨论】:

出于安全原因,您可以将本地数据库迁移到主机并添加 ssl 层。 db.php 连接文件看起来不错,它会工作,我还建议使用任何 php 框架,如 laravel、codignator 等。 【参考方案1】:

如果您将数据库托管在本地计算机上,同时有一个需要连接到数据库的网络服务器,您必须确保另一台计算机可以访问您的数据库。如果机器和数据库的本地 IP 相同,则主机只是“localhost”。你的 db.php 是正确的,并且会正常运行,只要你确保连接细节是正确的,因为 localhost 不正确会有错误。

您可能想研究如何根据您使用的数据库软件/安装进行移植。或者查看您的主机是否提供与 PhpMyAdmin 类似或类似的数据库解决方案(在大多数网络主机的情况下)。

【讨论】:

我查看了一些在线教程,并在 Heroku 和 MySQL 工作台中遇到了 clearDB。但是,在安装插件和软件,创建用户和密码后,我不知道如何在我的 db.php 中建立连接,因为在线教程没有显示。我检查了很多教程,但无济于事。 ***.com/questions/9822313/…如果您使用的是ClearDB,您可以通过阅读此处的问题答案了解如何建立远程连接

以上是关于从托管在 Heroku 的在线 PHP 站点连接数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从 Heroku 上托管的 Node.js 应用程序发送到托管在完全独立(Cpanel)服务器上的 PHP 文件?

如何从托管站点在本地ZPL打印机中打印标签?

Laravel 项目 - 托管在 Heroku - SendGrid SMTP 连接问题

无法使用PHP将数据库连接到heroku

如何在heroku中托管音乐机器人?

无法将 AWS-Postgres 服务器与带有 heroku 托管的 Spring Boot 应用程序连接起来