PHP MySQL

MySQL LIMIT 子句用于从表中获取指定数量的记录。当表包含数千条记录并且返回大型数据集会影响性能时,这非常有用。

使用 LIMIT 子句的语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition(s)
LIMIT fetch_row_count; 

使用 OFFSET with LIMIT 子句

OFFSET 值最常与 LIMIT 子句一起使用。 OFFSET 值允许用户指定从哪一行开始检索数据。

使用 OFFSET 关键字的语法如下:

/* method 1 */
SELECT column1, column2, ...
FROM table_name
WHERE condition(s)
LIMIT fetch_row_count OFFSET offset_row_count;

/* method 2 */
SELECT column1, column2, ...
FROM table_name
WHERE condition(s)
LIMIT offset_row_count, fetch_row_count; 

随之而来,要连接到MySQL服务器,可以使用mysqli_connect()函数。建立连接后,可以使用 mysqli_query() 函数对数据库执行查询。

num_rows() 函数可用于检查返回的行数是否超过零。然后,可以使用 fetch_assoc() 函数以关联数组的形式获取结果集。稍后,可以使用 free_result() 函数释放与结果关联的内存。

选择和限制数据 - 面向对象风格

考虑一个包含名为 employee 的员工表 具有以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

下面的示例演示如何使用 LIMIT 子句以面向对象的方式从该表中选择前 3 条记录。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";

//建立连接
$mysqli = new mysqli($servername, $username, $password, $dbname);

//检查连接
if ($mysqli->connect_errno) {
  echo "Failed to connect to MySQL: ". $mysqli->connect_error;
  exit();
}

//从数据库获取查询结果
$sql = "SELECT Name, Age, Salary 
FROM Employee LIMIT 3";
$result = $mysqli->query($sql);

//获取关联数组
while ($row = $result->fetch_assoc()) {
  printf("%s, %d, %d\n", $row["Name"], $row["Age"], $row["Salary"]);
}

//释放结果集
$result->free_result();

//关闭连接
$mysqli->close();
?> 

上述代码的输出将是:

John, 25, 3000
Marry, 24, 2750
Jo, 27, 2800 

选择和限制数据 - 过程样式

要使用过程样式获得相同的结果,可以使用以下脚本。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";

//建立连接
$mysqli = mysqli_connect($servername, $username, $password, $dbname);

//检查连接
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: ". mysqli_connect_error();
  exit();
}

//从数据库获取查询结果
$sql = "SELECT Name, Age, Salary 
FROM Employee LIMIT 3";
$result = mysqli_query($mysqli, $sql);

//获取关联数组
while ($row = mysqli_fetch_assoc($result)) {
  printf("%s, %d, %d\n", $row["Name"], $row["Age"], $row["Salary"]);
}

//释放结果集
mysqli_free_result($result);

//关闭连接
mysqli_close($mysqli);
?> 

上述代码的输出将是:

John, 25, 3000
Marry, 24, 2750
Jo, 27, 2800 

完整 PHP MySQLi 参考

有关 PHP MySQLi 扩展的所有属性、方法和函数的完整参考,请参见PHP MySQLi 参考