- PHP & MySQL 教程
- PHP & MySQL - 首页
- PHP & MySQL - 概述
- PHP & MySQL - 环境设置
- PHP & MySQL 示例
- PHP & MySQL - 连接数据库
- PHP & MySQL - 创建数据库
- PHP & MySQL - 删除数据库
- PHP & MySQL - 选择数据库
- PHP & MySQL - 创建表
- PHP & MySQL - 删除表
- PHP & MySQL - 插入记录
- PHP & MySQL - 查询记录
- PHP & MySQL - 更新记录
- PHP & MySQL - 删除记录
- PHP & MySQL - WHERE 子句
- PHP & MySQL - LIKE 子句
- PHP & MySQL - 数据排序
- PHP & MySQL - 使用 JOIN
- PHP & MySQL - 处理 NULL 值
- PHP & MySQL - 数据库信息
- PHP & MySQL 有用资源
- PHP & MySQL 快速指南
- PHP & MySQL - 有用资源
- PHP & MySQL - 讨论
PHP & MySQL 快速指南
PHP & MySQL - 概述
MySQL 可以与多种编程语言很好地结合使用,例如 PERL、C、C++、JAVA 和 PHP。在这些语言中,PHP 因其 Web 应用程序开发能力而成为最流行的一种。
PHP 提供各种函数来访问 MySQL 数据库并操作 MySQL 数据库中的数据记录。您需要像调用任何其他 PHP 函数一样调用 PHP 函数。
与 MySQL 一起使用的 PHP 函数具有以下通用格式:
mysql_function(value,value,...);
函数名称的第二部分特定于该函数,通常是一个描述函数功能的词。以下是我们将在本教程中使用的两个函数:
mysqli_connect($connect); mysqli_query($connect,"SQL statement");
以下示例显示了 PHP 调用任何 MySQL 函数的通用语法。
<html>
<head>
<title>PHP with MySQL</title>
</head>
<body>
<?php
$retval = mysql_function(value, [value,...]);
if( !$retval ) {
die ( "Error: a related error message" );
}
// Otherwise MySQL or PHP Statements
?>
</body>
</html>
从下一章开始,我们将看到所有重要的 MySQL 功能以及 PHP。
PHP & MySQL - 环境设置
为了开发和运行 PHP 网页,需要在您的计算机系统上安装三个重要组件。
Web 服务器 - PHP 几乎可以与所有 Web 服务器软件一起使用,包括 Microsoft 的 Internet Information Server (IIS),但最常用的是 Apache 服务器。在此处免费下载 Apache:https://httpd.apache.org/download.cgi
数据库 - PHP 几乎可以与所有数据库软件一起使用,包括 Oracle 和 Sybase,但最常用的是 MySQL 数据库。在此处免费下载 MySQL:https://mysqlserver.cn/downloads/
PHP 解析器 - 为了处理 PHP 脚本指令,必须安装一个解析器以生成可以发送到 Web 浏览器的 HTML 输出。本教程将指导您如何在计算机上安装 PHP 解析器。
PHP 解析器安装
在继续之前,务必确保您的机器上已正确设置环境,以便使用 PHP 开发 Web 程序。将以下 php 文件存储在 Apache 的 htdocs 文件夹中。
phpinfo.php
<?php phpinfo(); ?>
在浏览器地址栏中输入以下地址。
http://127.0.0.1/phpinfo.php
如果显示一个页面,显示与您的 PHP 安装相关的信,则表示您已正确安装了 PHP 和 Web 服务器。否则,您必须按照给定的步骤在您的计算机上安装 PHP。
本节将指导您在以下四个平台上安装和配置 PHP:
Apache 配置
如果您使用 Apache 作为 Web 服务器,则本节将指导您编辑 Apache 配置文件。
请查看此处:Apache 服务器中的 PHP 配置
PHP.INI 文件配置
PHP 配置文件php.ini是影响 PHP 功能的最终和直接方法。
请查看此处:PHP.INI 文件配置
Windows IIS 配置
要在 Windows 机器上配置 IIS,您可以参考随 IIS 一起提供的 IIS 参考手册。
安装 MySQL 数据库
当然,您最需要的是一个实际运行的数据库,其中包含您可以查询和修改的表。
MySQL 数据库 - MySQL 是一个开源数据库。您可以从MySQL 官方网站下载它。我们建议下载完整的 Windows 安装程序。
此外,还下载并安装MySQL Administrator以及MySQL Query Browser。这些是基于 GUI 的工具,将使您的开发更加轻松。
最后,下载并解压MySQL Connector/J(MySQL JDBC 驱动程序)到一个方便的目录。在本教程中,我们假设您已将驱动程序安装在 C:\Program Files\MySQL\mysql-connector-java-5.1.8。
相应地,将 CLASSPATH 变量设置为 C:\Program Files\MySQL\mysql-connector-java-5.1.8\mysql-connector-java-5.1.8-bin.jar。您的驱动程序版本可能会因您的安装而异。
设置数据库凭据
安装 MySQL 数据库时,其管理员 ID 设置为root,并允许设置您选择的密码。
使用 root ID 和密码,您可以创建另一个用户 ID 和密码,或者您可以将 root ID 和密码用于您的 JDBC 应用程序。
有各种数据库操作,如数据库创建和删除,这需要管理员 ID 和密码。
对于其余的 JDBC 教程,我们将使用 MySQL 数据库,ID 为guest,密码为guest123。
如果您没有足够的权限来创建新用户,那么您可以要求您的数据库管理员 (DBA) 为您创建一个用户 ID 和密码。
创建数据库
要创建TUTORIALSPOINT数据库,请使用以下步骤:
步骤 1
打开命令提示符,并更改为以下安装目录:
C:\> C:\>cd Program Files\MySQL\bin C:\Program Files\MySQL\bin>
注意 - mysqld.exe 的路径可能会因系统上 MySQL 的安装位置而异。您还可以查看有关如何启动和停止数据库服务器的文档。
步骤 2
如果数据库服务器尚未运行,则执行以下命令启动它。
C:\Program Files\MySQL\bin>mysqld C:\Program Files\MySQL\bin>
步骤 3
通过执行以下命令创建TUTORIALSPOINT数据库:
C:\Program Files\MySQL\bin> mysqladmin create TUTORIALSPOINT -u guest -p Enter password: ******** C:\Program Files\MySQL\bin>
创建表
要在 TUTORIALSPOINT 数据库中创建Employees表,请使用以下步骤:
步骤 1
打开命令提示符,并更改为以下安装目录:
C:\> C:\>cd Program Files\MySQL\bin C:\Program Files\MySQL\bin>
步骤 2
登录数据库,如下所示:
C:\Program Files\MySQL\bin>mysql -u guest -p Enter password: ******** mysql>
步骤 3
创建表Employees,如下所示:
mysql> use TUTORIALSPOINT; mysql> create table Employees -> ( -> id int not null, -> age int not null, -> first varchar (255), -> last varchar (255) -> ); Query OK, 0 rows affected (0.08 sec) mysql>
创建数据记录
最后,您可以在 Employee 表中创建一些记录,如下所示:
mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali'); Query OK, 1 row affected (0.05 sec) mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal'); Query OK, 1 row affected (0.00 sec) mysql>
要全面了解 MySQL 数据库,请学习MySQL 教程。
现在您可以开始尝试使用 PHP 了。
PHP & MySQL - 连接数据库示例
PHP 提供mysqli构造函数或mysqli_connect()函数来打开数据库连接。此函数接受六个参数,并在成功时返回 MySQL 链接标识符,失败时返回 FALSE。
语法
$mysqli = new mysqli($host, $username, $passwd, $dbName, $port, $socket);
| 序号 | 参数和说明 |
|---|---|
| 1 |
$host 可选 - 运行数据库服务器的主机名。如果未指定,则默认值为localhost:3306。 |
| 2 |
$username 可选 - 访问数据库的用户名。如果未指定,则默认为拥有服务器进程的用户名称。 |
| 3 |
$passwd 可选 - 访问数据库的用户密码。如果未指定,则默认为空密码。 |
| 4 |
$dbName 可选 - 要在其上执行查询的数据库名称。 |
| 5 |
$port 可选 - 要尝试连接到的 MySQL 服务器的端口号。 |
| 6 |
$socket 可选 - 应使用的套接字或命名管道。 |
您可以随时使用另一个 PHP 函数close()断开与 MySQL 数据库的连接。
语法
$mysqli->close();
示例
尝试以下示例以连接到 MySQL 服务器:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Connecting MySQL Server</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully.
PHP & MySQL - 创建数据库示例
PHP 使用mysqli_query()或mysql_query()函数来创建或删除 MySQL 数据库。此函数接受两个参数,并在成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 必需 - 创建 MySQL 数据库的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以创建数据库:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head><title>Creating MySQL Database</title></head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query("CREATE DATABASE TUTORIALS")) {
printf("Database TUTORIALS created successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not create database: %s<br />", $mysqli->error);
}
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. Database TUTORIALS created successfully.
PHP & MySQL - 删除数据库示例
PHP 使用mysqli_query()或mysql_query()函数来删除 MySQL 数据库。此函数接受两个参数,并在成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 必需 - 删除 MySQL 数据库的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以删除数据库:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head><title>Dropping MySQL Database</title></head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query("Drop DATABASE TUTORIALS")) {
printf("Database TUTORIALS dropped successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not drop database: %s<br />", $mysqli->error);
}
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. Database TUTORIALS dropped successfully.
PHP & MySQL - 选择数据库示例
PHP 使用mysqli_select_db函数来选择要对其执行查询的数据库。此函数接受两个参数,并在成功时返回 TRUE,失败时返回 FALSE。
语法
mysqli_select_db ( mysqli $link , string $dbname ) : bool
| 序号 | 参数和说明 |
|---|---|
| 1 |
$link 必需 - mysqli_connect() 或 mysqli_init() 返回的链接标识符。 |
| 2 |
$dbname 必需 - 要连接的数据库的名称。 |
示例
尝试以下示例以选择数据库:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Selecting MySQL Database</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysqli_error($conn));
}
echo 'Connected successfully<br />';
$retval = mysqli_select_db( $conn, 'TUTORIALS' );
if(! $retval ) {
die('Could not select database: ' . mysqli_error($conn));
}
echo "Database TUTORIALS selected successfully\n";
mysqli_close($conn);
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Database TUTORIALS selected successfully
PHP & MySQL - 创建表
PHP 使用mysqli_query()或mysql_query()函数来创建 MySQL 表。此函数接受两个参数,并在成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 必需 - 创建 MySQL 表的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以创建表:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Creating MySQL Table</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = "CREATE TABLE tutorials_tbl( ".
"tutorial_id INT NOT NULL AUTO_INCREMENT, ".
"tutorial_title VARCHAR(100) NOT NULL, ".
"tutorial_author VARCHAR(40) NOT NULL, ".
"submission_date DATE, ".
"PRIMARY KEY ( tutorial_id )); ";
if ($mysqli->query($sql)) {
printf("Table tutorials_tbl created successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not create table: %s<br />", $mysqli->error);
}
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. Table tutorials_tbl created successfully.
PHP & MySQL - 删除表示例
PHP 使用mysqli_query()或mysql_query()函数来删除 MySQL 表。此函数接受两个参数,并在成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 必需 - 删除表的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以删除表:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head><title>Dropping MySQL Table</title></head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query("Drop Table tutorials_tbl")) {
printf("Table tutorials_tbl dropped successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not drop table: %s<br />", $mysqli->error);
}
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. Table tutorials_tbl dropped successfully.
PHP & MySQL - 插入记录示例
PHP 使用mysqli_query函数在表中插入记录。此函数接受三个参数,并在成功时返回 TRUE,失败时返回 FALSE。
语法
mysqli_query ( mysqli $link, string $query, int $resultmode = MYSQLI_STORE_RESULT ) : mixed
| 序号 | 参数和说明 |
|---|---|
| 1 |
$link 必需 - mysqli_connect() 或 mysqli_init() 返回的链接标识符。 |
| 2 |
$query 必需 - 删除表的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
此示例将从用户处获取三个参数,并将它们插入 MySQL 表中。
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Add New Record in MySQL Database</title>
</head>
<body>
<?php
if(isset($_POST['add'])) {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysqli_error($conn));
}
if(! get_magic_quotes_gpc() ) {
$tutorial_title = addslashes ($_POST['tutorial_title']);
$tutorial_author = addslashes ($_POST['tutorial_author']);
} else {
$tutorial_title = $_POST['tutorial_title'];
$tutorial_author = $_POST['tutorial_author'];
}
$submission_date = $_POST['submission_date'];
$sql = "INSERT INTO tutorials_tbl ".
"(tutorial_title,tutorial_author, submission_date) "."VALUES ".
"('$tutorial_title','$tutorial_author','$submission_date')";
mysqli_select_db( $conn, 'TUTORIALS' );
$retval = mysqli_query( $conn, $sql );
if(! $retval ) {
die('Could not enter data: ' . mysqli_error($conn));
}
echo "Entered data successfully\n";
mysqli_close($conn);
} else {
?>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "600" border = "0" cellspacing = "1" cellpadding = "2">
<tr>
<td width = "250">Tutorial Title</td>
<td><input name = "tutorial_title" type = "text" id = "tutorial_title"></td>
</tr>
<tr>
<td width = "250">Tutorial Author</td>
<td><input name = "tutorial_author" type = "text" id = "tutorial_author"></td>
</tr>
<tr>
<td width = "250">Submission Date [ yyyy-mm-dd ]</td>
<td><input name = "submission_date" type = "text" id = "submission_date"></td>
</tr>
<tr>
<td width = "250"> </td>
<td></td>
</tr>
<tr>
<td width = "250"> </td>
<td><input name = "add" type = "submit" id = "add" value = "Add Tutorial"></td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php,输入详细信息,并在提交表单后验证输出。
Entered data successfully
在进行数据插入时,最好使用函数get_magic_quotes_gpc()来检查当前 magic quote 配置是否已设置。如果此函数返回 false,则使用函数addslashes()在引号之前添加反斜杠。
您可以进行许多验证来检查输入的数据是否正确,并采取相应的措施。
PHP & MySQL - 选择记录示例
您可以将相同的 SQL SELECT 命令放入 PHP 函数mysql_query()中。此函数用于执行 SQL 命令,然后可以使用另一个 PHP 函数mysql_fetch_array()来获取所有选定的数据。此函数将行返回为关联数组、数字数组或两者兼有。如果不再有行,则此函数返回 FALSE。
下面的程序是一个简单的示例,它将演示如何从tutorials_tbl表中获取/显示记录。
示例
下面的代码块将显示 tutorials_tbl 表中的所有记录。
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Selecting Records</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysqli_error($conn));
}
echo 'Connected successfully<br />';
mysqli_select_db( $conn, 'TUTORIALS' );
$sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl";
$retval = mysqli_query( $conn, $sql );
if(! $retval ) {
die('Could not get data: ' . mysqli_error($conn));
}
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC)) {
echo "Tutorial ID :{$row['tutorial_id']} ".
"Title: {$row['tutorial_title']} ".
"Author: {$row['tutorial_author']} ".
"Submission Date : {$row['submission_date']} ".
"--------------------------------";
}
echo "Fetched data successfully\n";
mysqli_close($conn);
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php,输入详细信息,并在提交表单后验证输出。
Entered data successfully
在进行数据插入时,最好使用函数get_magic_quotes_gpc()来检查当前 magic quote 配置是否已设置。如果此函数返回 false,则使用函数addslashes()在引号之前添加反斜杠。
您可以进行许多验证来检查输入的数据是否正确,并采取相应的措施。
PHP & MySQL - 更新记录示例
PHP 使用mysqli_query()或mysql_query()函数更新 MySQL 表中的记录。此函数接受两个参数,成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 需要 - 更新 MySQL 表中记录的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以更新表中的记录:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Updating MySQL Table</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query('UPDATE tutorials_tbl set tutorial_title = "Learning Java" where tutorial_id = 4')) {
printf("Table tutorials_tbl updated successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not update table: %s<br />", $mysqli->error);
}
$sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。在运行选择脚本之前,我们已在表中输入多条记录。
Connected successfully. Table tutorials_tbl updated successfully. Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021 Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021 Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021 Id: 4, Title: Learning Java, Author: Mahesh, Date: 2021 Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021
PHP & MySQL - 删除记录示例
PHP 使用mysqli_query()或mysql_query()函数删除 MySQL 表中的记录。此函数接受两个参数,成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 需要 - 删除 MySQL 表中记录的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以删除表中的一条记录:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Deleting MySQL Table record</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($mysqli->query('DELETE FROM tutorials_tbl where tutorial_id = 4')) {
printf("Table tutorials_tbl record deleted successfully.<br />");
}
if ($mysqli->errno) {
printf("Could not delete record from table: %s<br />", $mysqli->error);
}
$sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。在运行选择脚本之前,我们已在表中输入多条记录。
Connected successfully. Table tutorials_tbl record deleted successfully. Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021 Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021 Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021 Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021
PHP & MySQL - WHERE 子句示例
PHP 使用mysqli_query()或mysql_query()函数使用 WHERE 子句选择 MySQL 表中的记录。此函数接受两个参数,成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 需要 - 使用 WHERE 子句选择 MySQL 表中记录的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以使用 WHERE 子句选择表中的记录:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Using Where Clause</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl where tutorial_author = "Mahesh"';
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。在运行选择脚本之前,我们已在表中输入多条记录。
Connected successfully. Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021 Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021 Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021
PHP & MySQL - LIKE 子句示例
PHP 使用mysqli_query()或mysql_query()函数使用 LIKE 子句选择 MySQL 表中的记录。此函数接受两个参数,成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 需要 - 使用 LIKE 子句选择 MySQL 表中记录的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以使用 LIKE 子句选择表中的记录:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Using Like Clause</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl where tutorial_author like "Mah%"';
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。在运行选择脚本之前,我们已在表中输入多条记录。
Connected successfully. Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021 Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021 Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021
PHP & MySQL - 数据排序示例
PHP 使用mysqli_query()或mysql_query()函数从 MySQL 表中获取排序后的记录。此函数接受两个参数,成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 需要 - 从表中获取排序记录的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
示例
尝试以下示例以从表中获取排序后的记录:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Sorting MySQL Table records</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl order by tutorial_title asc";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Title: %s, Author: %s, Date: %d <br />",
$row["tutorial_id"],
$row["tutorial_title"],
$row["tutorial_author"],
$row["submission_date"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021 Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021 Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021 Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021
PHP & MySQL - 使用 JOIN 示例
PHP 使用mysqli_query()或mysql_query()函数使用 JOIN 从 MySQL 表中获取记录。此函数接受两个参数,成功时返回 TRUE,失败时返回 FALSE。
语法
$mysqli->query($sql,$resultmode)
| 序号 | 参数和说明 |
|---|---|
| 1 |
$sql 需要 - 使用 JOIN 从多个表中获取记录的 SQL 查询。 |
| 2 |
$resultmode 可选 - 根据所需行为,使用常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。默认情况下,使用 MYSQLI_STORE_RESULT。 |
首先使用以下脚本在 MySQL 中创建一个表并插入两条记录。
create table tcount_tbl(
tutorial_author VARCHAR(40) NOT NULL,
tutorial_count int
);
insert into tcount_tbl values('Mahesh', 3);
insert into tcount_tbl values('Suresh', 1);
示例
尝试以下示例以使用 JOIN 从两个表中获取记录:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Using joins on MySQL Tables</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$sql = 'SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count
FROM tutorials_tbl a, tcount_tbl b
WHERE a.tutorial_author = b.tutorial_author';
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Id: %s, Author: %s, Count: %d <br />",
$row["tutorial_id"],
$row["tutorial_author"],
$row["tutorial_count"]);
}
} else {
printf('No record found.<br />');
}
mysqli_free_result($result);
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. Id: 1, Author: Mahesh, Count: 3 Id: 2, Author: Mahesh, Count: 3 Id: 3, Author: Mahesh, Count: 3 Id: 5, Author: Suresh, Count: 1
PHP & MySQL - 处理 NULL 示例
您可以使用if...else条件根据 NULL 值准备查询。
以下示例从外部获取 tutorial_count,然后将其与表中可用的值进行比较。
示例
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Handling NULL</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
$tutorial_count = null;
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if( isset($tutorial_count )) {
$sql = 'SELECT tutorial_author, tutorial_count
FROM tcount_tbl
WHERE tutorial_count = ' + $tutorial_count;
} else {
$sql = 'SELECT tutorial_author, tutorial_count
FROM tcount_tbl
WHERE tutorial_count IS NULL';
}
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
printf("Author: %s, Count: %d <br />",
$row["tutorial_author"],
$row["tutorial_count"]);
}
} else {
printf('No record found.<br />');
}
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. No record found.
PHP & MySQL - 数据库信息示例
MySQL 中有一些重要的命令,可以在 MySQL 提示符下执行,也可以使用任何脚本(如 PHP)来获取有关数据库服务器的各种重要信息。
| 序号 | 命令 & 说明 |
|---|---|
| 1 |
SELECT VERSION( ) 服务器版本字符串 |
| 2 |
SELECT DATABASE( ) 当前数据库名称(如果无则为空) |
| 3 |
SELECT USER( ) 当前用户名 |
| 4 |
SHOW STATUS 服务器状态指示器 |
| 5 |
SHOW VARIABLES 服务器配置变量 |
示例
尝试以下示例以获取数据库信息:
将以下示例复制并粘贴为 mysql_example.php:
<html>
<head>
<title>Getting MySQL Database Info</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root@123';
$dbname = 'TUTORIALS';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
$tutorial_count = null;
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
if ($result = mysqli_query($mysqli, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("Default database is %s<br />", $row[0]);
mysqli_free_result($result);
}
$mysqli->close();
?>
</body>
</html>
输出
访问部署在 Apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. Default database is tutorials