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 信息服务器 (IIS),但最常用的是 Apache Server。在这里免费下载 Apache - https://httpd.apache.org/download.cgi

  • 数据库- PHP 几乎适用于所有数据库软件,包括 Oracle 和 Sybase,但最常用的是 MySQL 数据库。在这里免费下载 MySQL - https://www.mysql.com/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 作为 Web 服务器,那么本节将指导您编辑 Apache 配置文件。

检查此处 - Apache 服务器中的 PHP 配置

PHP.INI 文件配置

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

检查此处 - PHP.INI 文件配置

Windows IIS 配置

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

安装MySQL数据库

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

  • MySQL DB - 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 数据库,其中guest作为 ID,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 数据库中创建员工表,请使用以下步骤 -

步骤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

$主机

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

2

$用户名

可选 - 访问数据库的用户名。如果未指定,则默认值将是拥有服务器进程的用户的名称。

3

$密码

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

4

$数据库名称

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

5

$端口

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

6

$套接字

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

您可以随时使用另一个 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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

$链接

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

2

$数据库名称

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

例子

尝试以下示例来选择数据库 -

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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

$链接

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

2

$查询

必需 - 用于删除表的 SQL 查询。

2

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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 - 选择记录示例

您可以在 PHP 函数mysql_query()中使用相同的 SQL SELECT 命令。该函数用于执行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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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 - 使用联接示例

PHP 使用mysqli query()mysql_query()函数通过连接从 MySQL 表中获取记录。该函数采用两个参数,成功时返回 TRUE,失败时返回 FALSE。

句法

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

先生。 参数及说明
1

$sql

必需 - 使用 Join 从多个表中获取记录的 SQL 查询。

2

$结果模式

可选 - 常量 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT,具体取决于所需的Behave。默认情况下,使用 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

选择版本( )

服务器版本字符串

2

选择数据库( )

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

3

选择用户( )

当前用户名

4

显示状态

服务器状态指示灯

5

显示变量

服务器配置变量

例子

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

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