Php Mysql 简明教程

PHP & MySQL - Quick Guide

PHP & MySQL - Overview

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 - Environment Setup

为了开发和运行 PHP 网页,您的计算机系统上需要安装三个重要组件。

  1. Web Server − PHP 能够与几乎所有的 Web 服务器软件一起运行,包括 Microsoft 的 Internet 信息服务器 (IIS),但最常使用的是 Apache 服务器。请在此免费下载 Apache − https://httpd.apache.org/download.cgi

  2. Database − PHP 能够与几乎所有的数据库软件一起运行,包括 Oracle 和 Sybase,但最常使用的是 MySQL 数据库。请在此免费下载 MySQL − https://www.mysql.com/downloads/

  3. PHP Parser − 为了处理 PHP 脚本指令,必须安装解释器来生成 HTML 输出,该输出可以发送到 Web 浏览器。本教程将指导您如何安装您计算机上的 PHP 解释器。

PHP Parser Installation

在您进行之前,在计算机上确保设置好适当的环境,以使用 PHP 开发您的网络程序非常重要。将以下 php 文件储存在 Apache 的 htdocs 文件夹中。

phpinfo.php

<?php
   phpinfo();
?>

在您的浏览器的地址框中输入以下地址。

http://127.0.0.1/phpinfo.php

如果这样做会显示一个页面,显示您的 PHP 安装相关信息,则表示已正确安装了 PHP 和 Web 服务器。否则,您必须按照给定的程序在计算机上安装 PHP。

本部分将指导您在以下四个平台上安装和配置 PHP −

Apache Configuration

如果您使用 Apache 作为 Web 服务器,那么本部分将指导您编辑 Apache 配置文件。

PHP.INI File Configuration

PHP 配置文件 php.ini 是影响 PHP 功能的最后一种直接方法。

在此处查看 − PHP.INI File Configuration

Windows IIS Configuration

要在 Windows 机器上配置 IIS,您可以参考随 IIS 一起提供的 IIS 参考手册。

Install MySQL Database

当然,您将需要最重要的实际运行数据库,其中包含您可以查询和修改的表。

  1. MySQL DB - MySQL 是一个开源数据库。您可以从 MySQL Official Site 下载它。我们建议下载完整的 Windows 安装。

  2. 此外,下载并安装 MySQL AdministratorMySQL Query Browser. 。它们是基于 GUI 的工具,可以让您的开发变得更加轻松。

  3. 最后,在方便的目录中下载并解压缩 MySQL Connector/J (MySQL JDBC 驱动程序)。出于本教程的目的,我们假设您已在 C:\Program Files\MySQL\mysql-connector-java-5.1.8 中安装了驱动程序。

  4. 相应地,将 CLASSPATH 变量设置为 C:\Program Files\MySQL\mysql-connector-java-5.1.8\mysql-connector-java-5.1.8-bin.jar。您的驱动程序版本可能会因您的安装而异。

Set Database Credential

当我们安装 MySQL 数据库时,它的管理员 ID 设置为 root ,并提供设置密码的选项。

使用 root ID 和密码,您可以创建另一个用户 ID 和密码,也可以为您的 JDBC 应用程序使用 root ID 和密码。

有各种数据库操作,例如数据库创建和删除,这需要管理员 ID 和密码。

对于 JDBC 教程的其余部分,我们将使用 MySQL 数据库, guest 为 ID, guest123 为密码。

如果您没有足够权限创建新用户,那么您可以请求数据库管理员 (DBA) 为您创建用户 ID 和密码。

Create Database

要创建 TUTORIALSPOINT 数据库,请执行以下步骤 −

Step 1

打开 Command Prompt 并更改到安装目录,如下所示 −

C:\>
C:\>cd Program Files\MySQL\bin
C:\Program Files\MySQL\bin>

Notemysqld.exe 的路径可能因系统上 MySQL 的安装位置而异。您还可以查看有关如何启动和停止数据库服务器的文档。

Step 2

如果数据库服务器尚未运行,请执行以下命令以下启动数据库服务器。

C:\Program Files\MySQL\bin>mysqld
C:\Program Files\MySQL\bin>

Step 3

通过执行以下命令创建 TUTORIALSPOINT 数据库 −

C:\Program Files\MySQL\bin> mysqladmin create TUTORIALSPOINT -u guest -p
Enter password: ********
C:\Program Files\MySQL\bin>

Create Table

要创建 Employees 表中 TUTORIALSPOINT 数据库,请执行以下步骤 −

Step 1

打开 Command Prompt 并更改到安装目录,如下所示 −

C:\>
C:\>cd Program Files\MySQL\bin
C:\Program Files\MySQL\bin>

Step 2

登录数据库,如下所示 −

C:\Program Files\MySQL\bin>mysql -u guest -p
Enter password: ********
mysql>

Step 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>

Create Data Records

最后,在 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 Tutorial

现在,您可以开始尝试使用 PHP 了。

PHP & MySQL - Connect Database Example

PHP 提供 mysqli 构造或 mysqli_connect() 函数来打开一个数据库连接。此函数采用六个参数,并且在成功时返回一个 MySQL 链接标识符,在失败时返回 FALSE。

Syntax

$mysqli = new mysqli($host, $username, $passwd, $dbName, $port, $socket);

Sr.No.

Parameter & Description

1

$host 可选 - 运行数据库服务器的主机名。如果不指定,则默认值将为 localhost:3306

2

$username 可选 - 访问数据库的用户名。如果不指定,则默认值将为作为服务器进程所有者用户的名称。

3

$passwd 可选 - 访问数据库的用户的密码。如果不指定,则默认值将为空密码。

4

$dbName 可选 - 要执行查询的数据库名称。

5

$port 可选 - 要尝试连接到 MySQL 服务器的端口号。

6

$socket 可选 - 应使用的套接字或命名管道。

你可以随时使用另一个 PHP 函数 close() 来断开 MySQL 数据库连接。

Syntax

$mysqli->close();

Example

尝试以下示例以连接到 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>

Output

访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。

Connected successfully.

PHP & MySQL - Create Database Example

PHP 使用 mysqli query()mysql_query() 函数来创建或删除 MySQL 数据库。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必需 - 创建 MySQL 数据库的 SQL 查询。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试以下示例来创建数据库 −

将以下示例复制粘贴为 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>

Output

访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。

Connected successfully.
Database TUTORIALS created successfully.

PHP & MySQL - Drop Database Example

PHP 使用 mysqli query()mysql_query() 函数来删除 MySQL 数据库。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必需 - SQL 查询以删除 MySQL 数据库。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试以下示例来删除数据库−

将以下示例复制粘贴为 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>

Output

访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。

Connected successfully.
Database TUTORIALS dropped successfully.

PHP & MySQL - Select Database Example

PHP 使用 mysqli_select_db 函数来选择要执行查询的数据库。此函数接受两个参数,并成功时返回 TRUE,失败时返回 FALSE。

Syntax

mysqli_select_db ( mysqli $link , string $dbname ) : bool

Sr.No.

Parameter & Description

1

$link 必需 - mysqli_connect() 或 mysqli_init() 返回的链接标识符。

2

$dbname 必需 - 要连接的数据库的名称。

Example

尝试以下示例以选择数据库 −

将以下示例复制粘贴为 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>

Output

访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。

Database TUTORIALS selected successfully

PHP & MySQL - Create Table

PHP 使用 mysqli query()mysql_query() 函数来创建 MySQL 表。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必需 - 创建 MySQL 表的 SQL 查询。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试以下示例以创建一个表 −

将以下示例复制粘贴为 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>

Output

访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。

Connected successfully.
Table tutorials_tbl created successfully.

PHP & MySQL - Drop Table Example

PHP 使用 mysqli query()mysql_query() 函数来删除 MySQL 表。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必填 - 用来删除表的 SQL 查询。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试以下示例来删除一个表格 −

将以下示例复制粘贴为 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>

Output

访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。

Connected successfully.
Table tutorials_tbl dropped successfully.

PHP & MySQL - Insert Records Example

PHP 使用 mysqli_query 函数在表中插入记录。此函数采用三个参数,成功时返回 TRUE,失败时返回 FALSE。

Syntax

mysqli_query ( mysqli $link, string $query, int $resultmode = MYSQLI_STORE_RESULT ) : mixed

Sr.No.

Parameter & Description

1

$link 必需 - mysqli_connect() 或 mysqli_init() 返回的链接标识符。

2

$query 必填项 - SQL 查询以删除表。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

此示例会从用户那里获取三个参数,并将它们插入 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>

Output

访问部署在 apache Web 服务器上的 mysql_example.php,输入详细信息,并在提交表单时验证输出。

Entered data successfully

在执行数据插入时,最好使用函数 get_magic_quotes_gpc() 来检查当前 magic quote 配置是否已设置。如果此函数返回 false,则使用函数 addslashes() 在引号前添加反斜杠。

您可以进行许多验证,以检查输入的数据是否正确,并可以采取适当的操作。

PHP & MySQL - Select Records Example

您可以将相同的 SQL SELECT 命令用于 PHP 函数 mysql_query() 。此函数用于执行 SQL 命令,然后稍后可以使用另一个 PHP 函数 mysql_fetch_array() 来获取所有选定的数据。此函数将行作为关联数组、数字数组或两者返回。如果不再有行,则此函数将返回 FALSE。

以下程序是一个简单的示例,它将展示如何从 tutorials_tbl 表中获取/显示记录。

Example

以下代码块将显示 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>

Output

访问部署在 apache Web 服务器上的 mysql_example.php,输入详细信息,并在提交表单时验证输出。

Entered data successfully

在执行数据插入时,最好使用函数 get_magic_quotes_gpc() 来检查当前 magic quote 配置是否已设置。如果此函数返回 false,则使用函数 addslashes() 在引号前添加反斜杠。

您可以进行许多验证,以检查输入的数据是否正确,并可以采取适当的操作。

PHP & MySQL - Update Records Example

PHP 使用 mysqli query()mysql_query() 函数来更新 MySQL 表中的记录。此函数接收两个参数,成功时返回 TRUE,失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必需 - 更新 MySQL 表中记录的 SQL 查询。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试使用以下示例来更新表中的记录-

将以下示例复制粘贴为 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>

Output

访问在 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 - Delete Records Example

PHP 使用 mysqli query()mysql_query() 函数来删除 MySQL 表中的记录。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必需 - 删除 MySQL 表中记录的 SQL 查询。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试使用以下示例来删除表中的记录 -

将以下示例复制粘贴为 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>

Output

访问在 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 Clause Example

PHP 使用 mysqli query()mysql_query() 函数通过 where 子句选择 MySQL 表中的记录。此函数接受两个参数,并在成功时返回 TRUE,在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql Required - 使用 Where 子句选择 MySQL 表中记录的 SQL 查询。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试以下示例,通过表中的 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>

Output

访问在 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 Clause Example

PHP 使用 mysqli query()mysql_query() 函数使用 Like 子句来选择 MySQL 表中的记录。此函数接受两个参数并在成功时返回 TRUE,在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必需 - 使用 Like 子句在 MySQL 表中选择记录的 SQL 查询。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试以下示例,以在表中使用 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>

Output

访问在 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 - Sorting Data Example

PHP 使用 mysqli query()mysql_query() 函数从 MySQL 表中获取排序记录。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必需 - 从表中获取排序记录的 SQL 查询。

2

$resultmode 可选 - MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT 常量,具体取决于所需的行为。默认情况下,使用 MYSQLI_STORE_RESULT。

Example

尝试使用以下示例从表中获取排序记录 -

将以下示例复制粘贴为 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>

Output

访问部署在 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 - Using Joins Example

PHP 使用 mysqli query()mysql_query() 函数来使用联接从 MySQL 表中获取记录。这个函数接收两个参数,并在成功时返回 TRUE,并在失败时返回 FALSE。

Syntax

$mysqli->query($sql,$resultmode)

Sr.No.

Parameter & Description

1

$sql 必需 - 使用连接从多个表获取记录的 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);

Example

尝试以下示例以使用连接获取两个表中的记录。−

将以下示例复制粘贴为 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>

Output

访问部署在 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 - Handling NULL Example

可以使用 if…​else 条件根据 NULL 值准备查询。

以下示例从外部获取 tutorial_count,然后将其与表中可用值进行比较。

Example

将以下示例复制粘贴为 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>

Output

访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。

Connected successfully.
No record found.

PHP & MySQL - Database Info Example

MySQL 中有几个重要命令可以在 MySQL 提示符处执行,也可以使用 PHP 等任何脚本来获取有关数据库服务器的各种重要信息。

Sr.No.

Command & Description

1

SELECT VERSION( ) 服务器版本字符串

2

SELECT DATABASE( ) 当前数据库名称(如果没有则为空)

3

SELECT USER( ) Current username

4

SHOW STATUS Server status indicators

5

SHOW VARIABLES Server configuration variables

Example

尝试以下示例以获取数据库信息 −

将以下示例复制粘贴为 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>

Output

访问部署在 Apache Web 服务器上的 mysql_example.php, 并验证输出。

Connected successfully.
Default database is tutorials