如何连接 MySQL 数据库和 PHP 网站
MySQL 是一种非常流行的数据库管理系统,可以为各种规模的项目提供支持。它能够不费吹灰之力地处理大量数据是其最大的卖点之一。将 MySQL 与 PHP 代码连接,您可以使用三种方法之一。
PHP 中通过后端连接 MySQL 数据库的方法有以下三种:
- MySQL
- MySQLi
- PDO
由于SQL 注入等安全问题,mysql() 现在已过时,但其他两个正在积极使用。
MySQLi
MySQLi 是一个用作连接器函数的 API,用于将 PHP 应用程序的后端链接到 MySQL 数据库。它与之前的版本一样工作,但更安全、更快,并提供了更好的功能和扩展集。MySQLi 是在 PHP 5.0.0 中引入的,驱动程序安装在 5.3.0 中。该 API 旨在支持从版本 4.1.13 到更新版本的 MySQL。
PDO
PHP 数据对象 (PDO) 扩展是一个数据库抽象层。它就像后端与 MySQL 数据库交互并进行更改而不对 PHP 代码进行任何更改的接口。它还使您可以自由地使用多个数据库。使用 PDO 的主要优点是您的代码保持简单和可移植。
在这篇文章中,我将讨论如何在不同的服务器上连接 MySQL 数据库,我还将概述使用 PDO 连接数据库。
- 使用 localhost 服务器连接 MySQL
- 使用 Cloudways 服务器连接 MySQL
- 使用 PDO 连接 MySQL
- 使用远程 MySQL 连接 MySQL
在本地主机上创建 MySQL 数据库
在开始建立与 MySQL 数据库的 PHP 连接之前,您需要了解PHPMyAdmin是什么。它是一个控制面板,您可以在其中管理您创建的数据库。打开浏览器并转到 localhost/PHPMyAdmin 或单击 XAMPP UI 中的“Admin”。
当您第一次安装 XAMPP 时,它只创建了供访问的用户名,现在您必须自己为其添加密码。为此,您必须转到用户帐户,其中用户与此图片中显示的用户相同:
现在单击编辑权限并转到更改管理员密码,在此处输入您的密码并保存。请记住此密码,因为它将用于连接到您的数据库。
注意:无需更改密码即可访问 localhost 上的数据库。这是一个很好的做法,这就是我们使用密码的原因。
创建数据库
现在回到 PHPMyAdmin 的主页。单击新建按钮以创建一个新数据库。
在新窗口中,根据您的需要命名您的数据库,我将其命名为“练习”。现在选择 Collation 作为 utf8_general_ci,因为我们将其用于学习目的,它将处理我们将在本教程系列中介绍的所有查询和数据。现在单击创建,您的数据库将被创建。
新创建的数据库现在将是空的,因为其中没有表。我将在即将到来的系列中介绍这一点,我们将学习如何创建表并在其中插入数据。在本教程中,我们将使用 PHP 将此数据库连接到 localhost
在 htdocs 中创建文件夹
现在,找到安装 XAMPP 的文件夹并打开 htdocs 文件夹(通常是 c:/xampp)。在 c:/xampp/htdocs/ 中创建一个新文件夹并将其命名为“practice”,我们将在此文件夹中放置 Web 文件。为什么我们在 htdocs 中创建了一个文件夹?XAMPP 使用 htdocs 中的文件夹来执行和运行您的 PHP 站点。
注意:如果您使用的是 WAMP,请将您的练习文件夹添加到 c:/wamp/www 文件夹中。
在 PHP 中创建数据库连接文件
创建一个新的 PHP 文件并将其命名为db_connnection.php并保存。为什么要创建单独的数据库连接文件?因为如果您已经创建了多个文件来插入数据或从数据库中选择数据,您不需要每次都编写数据库连接的代码。
<?php function OpenCon() { $dbhost = "localhost"; $dbuser = "root"; $dbpass = "1234"; $db = "example"; $conn = new mysqli($dbhost, $dbuser, $dbpass,$db) or die("Connect failed: %s\n". $conn -> error); return $conn; } function CloseCon($conn) { $conn -> close(); } ?>
以下是我们在 db_connection 文件中使用的变量的解释:
- $dbhost 将是您的服务器运行的主机,它通常是 localhost。
- $dbuser 将是用户名,即root,$dbpass 将是您用来访问 PHPMyAdmin 的密码。
- $dbname 将是我们在本教程中创建的数据库的名称。
您只需在代码顶部使用 PHP 自定义函数include (include ‘connection.php’) 来包含它,然后调用它的函数并使用它。当您将项目位置从一台 PC 移动到另一台 PC 并且您必须更改单个文件上的值并且所有更改将自动应用于所有其他文件时,它也会有所帮助。
创建一个新的 PHP 文件来检查您的数据库连接
创建一个新的 PHP 文件以连接到您的数据库。将其命名为 index.php 并将此代码添加到此文件中。
<?php include 'db_connection.php'; $conn = OpenCon(); echo "Connected Successfully"; CloseCon($conn); ?>
运行!
现在打开您的浏览器并转到 localhost/practice/index.php,您应该会看到以下屏幕:
恭喜!您已成功将数据库与本地主机连接!如果您看不到此屏幕,请检查您是否在 db_connection.php 文件中正确完成了所有操作。
在 Cloudways 服务器上创建 MySQL 数据库
出于本教程的目的,我假设您在 Web 服务器上安装了一个 PHP 应用程序。我的设置是:
- PHP 7.3
- MySQL
我决定在 Cloudways 托管服务器上托管我的 PHP 应用程序,因为我获得了高度优化的托管堆栈并且没有服务器管理麻烦。您可以通过注册一个帐户免费试用 Cloudways,然后按照这个简单的 GIF 来设置服务器和 PHP 应用程序。查看适用于AWS、Google Compute Engine、Vultr、Linode和Digital Ocean的 Cloudways 托管计划,以找到适合您的方案。
在 Cloudways 上成功启动 PHP 应用程序后,进入应用程序选项卡并检查数据库的详细信息,然后单击按钮启动数据库管理器。
连接到 MySQL 数据库
要建立与数据库的连接,请使用mysql_connect函数。此函数返回一个指向数据库连接的指针(也称为数据库句柄)。稍后将在代码中使用此句柄。一旦你有了句柄,记得添加你的数据库凭据。
- 创建一个新的 PHP 文件并将其命名为db_connnection.php并保存。
为什么要创建单独的数据库连接文件?因为如果您已经创建了多个文件来插入数据或从数据库中选择数据,您不需要每次都编写数据库连接的代码。您只需在代码顶部使用 PHP 自定义函数 include (include ‘connection.php’) 来包含它,然后调用它的函数并使用它。
此时,您可以选择使用 MySQLi 过程连接查询或基于 PHP PDO 的数据库连接:
MySQLi 程序查询
<?php $servername = "localhost"; $username = "username"; $password = "password"; $db = "dbname"; // Create connection $conn = mysqli_connect($servername, $username, $password,$db); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; ?>
使用 PDO 将 MySQL 数据库与 PHP 连接
<?php $servername = "localhost"; $username = "username"; $password = "password"; $db = "dbname"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password, $db); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?>
检查连接
<?php include 'db_connection.php'; echo "Connected Successfully"; mysqli_close($conn); ?>
对于PDO像这样关闭连接
$conn = null;
远程 MySQL
对于远程 PHP MySQL 连接使用您的凭据登录 Cloudways 平台。单击顶部菜单栏中的“服务器”。然后,从列表中单击您的目标服务器。
- 接下来,转到左侧菜单中的 Security 菜单选项,然后单击 MySQL 选项卡。
- 将 IP 地址添加到“将 IP 添加到白名单”文本区域,然后单击“添加”按钮。
- 如果您有多个 IP 地址,请重复此过程。
- 完成后,单击“保存更改”按钮以完成更改
成功后,设置IP白名单设置连接中的IP地址并运行查询。
顶级 MySQL 管理工具
MySQL 工作台
MySQL Workbench 是数据库设计人员、开发人员和 DBA 的可视化工具。MySQL Workbench 为服务器安排、客户端组织、强化等提供信息建模、SQL 改进和综合组织设备。MySQL Workbench 可在 Windows、Linux 和 Mac OS X 上访问。
MySQL Workbench 是一款非常受开发人员欢迎的 MySQL 数据库管理器。它提供了方便的管理工具,如服务器配置、用户管理等。它适用于 MAC OS、Linux 和 Windows 操作系统。
我们建议所有想要学习数据库管理的新兴开发人员利用它来发挥自己的优势。管理功能将帮助他们全面掌握数据库管理。
优点
- 它保存 SQL 语句
- 提供对远程数据库的离线访问
- 在一个位置存储多个连接
- 可用的可视模式和查询生成器
缺点
- 与 PHPMyAdmin 相比,它更复杂。
- 用户经常报告软件崩溃。
Navicat for MySQL
Navicat 是一系列图形数据库管理和软件开发。它可以是一个允许您同时关联到 PHP MySQL 连接和 MariaDB 数据库的应用程序。与 Amazon RDS、Amazon Aurora、Oracle Cloud、Google Cloud 和 Microsoft Azure 等云数据库一致。
Navicat for MySQL 提供了开发人员完全管理其数据库操作所需的所有高级工具。它与云数据库的兼容性使其在管理基于云的应用程序时易于使用。它的一些主要特点是:
优点
- 直观、易于使用的用户界面。
- 通过 SSH 终端轻松连接 MySQL 数据库。
- 计划数据库作业——备份、恢复、运行报告等。
- 从 ODBC、Excel、Access、DBF、TXT、CSV、XML、JSON 导入和导出数据。
- 可用的可视化架构和查询构建器。
- 兼容 Windows、Linux 和 MAC 操作系统。
- 提供团队协作功能
缺点
- 专业版很贵
- 在 Linux 上执行需要 Wine,这会减慢 IDE。
- 耗时的流程管理
MySQL Yog
这个 MySQL 管理工具有三个可用的包,即 Professional、Enterprise 和 Pro。您可以在测试后选择其中任何一个。
MySQL 管理员可以轻松地使用这个平台,并且可以高效地处理他们的数据库任务。它仅适用于 Windows 操作系统。
优点
- 提供平滑查询设计器工具
- 提供有助于学习数据库管理的高级功能。
缺点
- 专业版的口袋很重
- 用户经常报告偶尔的软件崩溃
- 不支持除 MySQL 以外的任何数据库
- 不支持 Linux 和 MAC 操作系统。
- 多个选项卡之间不支持拖放。
Cloudways MySQL 数据库管理器
Cloudways MySQL 数据库管理器是迄今为止对开发人员来说最方便和有用的 MySQL 管理工具之一。由于其用户友好的 UI,它非常易于使用,并提供了数据库管理员应具备的所有必需的 MySQL 管理工具:
优点
- 提供具有高级功能的用户友好和可定制的 UI。
- 直观地设计模式表、约束和查询。
- 使用 SSH 终端轻松连接 MySQL 数据库。
缺点
- 多个选项卡不支持拖放。
- 缺乏对 MariaDB、MySQL 以外的数据库的支持。
结论
一个好的数据库结构是任何应用程序的支柱。无论是 CMS 还是在线任务跟踪平台,您都需要一个 MySQL 数据库来跟踪应用程序和用户信息以及应用程序进程的服务器数据。
在本教程中,我们学到了两件事:
- 如何创建一个新的数据库
- 如何用 PHP 连接 MySQL 数据库
MySQLi 和 PDO 都有自己的偏好。但是,在开始之前应该记住,MySQL 仅用于连接 MySQL 和 PHP,如果您需要迁移到另一个数据库,则需要修改整个代码。另一方面,PDO 与 12 个不同的数据库一起工作,这使得迁移的要求大大降低。
经常问的问题
问:如何检查 MySQL 是否正在运行?
答:要检查 MySQL 是否正在运行,如果它作为服务安装,您可以转到开始 -> 控制面板 -> 管理工具 -> 服务并在该列表中查找 MySQL。检查它是否正在运行。
问:如何找到 MySQL 的本地主机端口?
答:如果您使用的是 MySQL Workbench,请查看侧边栏信息窗格中的会话选项卡。如果您使用的是 phpMyAdmin,请单击主页,然后单击顶部菜单上的变量。在页面上查找端口设置。设置值是您的 MySQL 端口号。
问:我的 localhost MySQL 用户名和密码是什么?
答:查看 http://php.net/manual/en/function.mysql-connect.php。$servername = “本地主机”; $用户名=“根”;$密码=“”;这可能适用于新用户,并且不要忘记在连接之前创建数据库。
问:连接 MySQL 数据库的标准 PHP 函数是什么?
A:PHP 与 MySQL 配合得如此出色的原因之一是 mysql_connect 函数可以打开数据库连接。这个函数有五个参数。