MySQLi - 选择查询



SQL 的SELECT命令用于从MySQL数据库中提取数据。您可以在mysql>提示符下以及在任何脚本(如PHP)中使用此命令。

语法

以下是用于从MySQL表中提取数据的SELECT命令的通用SQL语法:

SELECT field1, field2,...fieldN 
FROM table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • 您可以使用逗号分隔一个或多个表,并使用WHERE子句包含各种条件,但WHERE子句是SELECT命令的可选部分。

  • 您可以在单个SELECT命令中提取一个或多个字段。

  • 您可以用星号(*)代替字段。在这种情况下,SELECT将返回所有字段。

  • 您可以使用WHERE子句指定任何条件。

  • 您可以使用OFFSET指定SELECT将从何处开始返回记录的偏移量。默认情况下,偏移量从零开始。

  • 您可以使用LIMIT属性限制返回的数量。

从命令提示符提取数据

这将使用SQL SELECT命令从MySQL表tutorials_tbl中提取数据。

示例

以下示例将返回tutorials_tbl表中的所有记录:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl 
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|           1 | Learn PHP      | John Poul       | 2007-05-21      |
|           2 | Learn MySQL    | Abdul S         | 2007-05-21      |
|           3 | JAVA Tutorial  | Sanjay          | 2007-05-21      |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.01 sec)

mysql>

使用PHP脚本提取数据

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 = "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.
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: Java Tutorial, Author: Mahesh, Date: 2021
Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021
广告
© . All rights reserved.