English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como ler um número limitado de registros de uma tabela do banco de dados MySQL usando PHP.
LIMITA cláusulaSELECTO número de linhas retornadas pela instrução. Esta funcionalidade é muito útil para otimizar o tempo de carregamento da página e melhorar a legibilidade do site. Por exemplo, você pode usar paginação para dividir um grande número de registros em várias páginas, carregando um número limitado de registros de cada página quando o usuário solicita a página através de cliques nos links de paginação.
A sintaxe básica da cláusula LIMIT pode ser dada da seguinte forma:
SELECT column_name(s) FROM table_name LIMIT row_offset, row_count;
A cláusula LIMIT aceita um ou dois parâmetros que devem ser números inteiros não negativos:
Quando dois parâmetros são especificados, o primeiro parâmetro especifica o deslocamento do primeiro linha a ser retornada, ou seja, o ponto de partida, enquanto o segundo parâmetro especifica o número de linhas a serem retornadas. O deslocamento da primeira linha é 0 (não1)。
Quando apenas um parâmetro é fornecido, ele especifica o número máximo de linhas a serem retornadas a partir do início do conjunto de resultados.
Por exemplo, para recuperar as três primeiras linhas, você pode usar a seguinte consulta:
SELECT * FROM persons LIMIT 3;
Para recuperar o conjunto de resultados da2-4linhas (contendo), você pode usar a seguinte consulta:
SELECT * FROM persons LIMIT 1, 3;
Vamos usar a cláusula LIMIT na instrução SELECT para realizar uma consulta SQL, e então passar essa consulta para a função mysqli_query() do PHP para executá-la, para obter um número limitado de registros. Considere a tabela persons do banco de dados de demonstração a seguir:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | | 4 | 5 +----+------------+-----------+----------------------+
O código PHP no exemplo a seguir mostra apenaspersonsTrês linhas na tabela.
<?php /*Tente conectar ao servidor MySQL. Suponha que você esteja executando o MySQL. Servidor com configurações padrão (usuário sem senha "root") */ $link = mysqli_connect("localhost", "root", "", "demo"); //Verificar conexão die(\ } //尝试选择查询执行 $sql = "SELECT * FROM persons LIMIT 3"; if($ esult = mysqli_query($link, $sql)){ if(mysqli_num_rows($ esult) > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($ ow = mysqli_fetch_array($ esult)){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //Fechar conjunto de resultados } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo \ } //关闭连接 mysqli_close($link); ?>
<?php /*Tente conectar ao servidor MySQL. Suponha que você esteja executando o MySQL. Servidor com configurações padrão (usuário sem senha "root") */ $mysqli = new mysqli("localhost", "root", "", "demo"); //Verificar conexão die(\->connect_error); } //尝试选择查询执行 $sql = "SELECT * FROM persons LIMIT 3"; if($ esult = $mysqli->query($sql)){ if($result->num_rows > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch_array()){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //释放结果集 $result- } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo \->error; } //关闭连接 $mysqli->close(); ?>
<?php /*Tente conectar ao servidor MySQL. Suponha que você esteja executando o MySQL. Servidor com configurações padrão (usuário sem senha "root") */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", \ //definir o modo de erro PDO como exceção $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("错误:无法连接。 " . $e->getMessage()); } //尝试选择查询执行 try{ $sql = "SELECT * FROM persons LIMIT 3"; $result = $pdo->query($sql); if($result->rowCount() > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch()){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //释放结果集 unset($result); } else{ echo "找不到与您的查询匹配的记录。"; } } catch(PDOException $e){ die("错误:无法执行 $sql. " . $e->getMessage()); } //关闭连接 unset($pdo); ?>
限制结果集后,输出将如下所示:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | +----+------------+-----------+----------------------+