获取sql记录的最优化和有效的方法

时间:2016-12-17 14:26:07

标签: php mysql

假设我有一个显示用户信息的网站(主要是姓名和年龄),我想知道从数据库中获取所有记录的最优化和最有效的方法是什么。

虽然我刚刚开始学习DBMS,这是我的第一段代码

    <?php     
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "simple_login";
    $conn = new mysqli($servername, $username, $password, $dbname);
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }  
    $sql = "SELECT name,age from `members`";
    $result = $conn->query($sql);        
    for($i=1;$i<6;$i++)
    {
    if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $name=$row['name'];
    $age=$row['age'];
    ?>
    <div class="container">
        <h4>Name : <? echo $name; ?></h4>
        <h4>Age : <? echo $age; ?></h4>
    </div>

但我不确定它是否是获取和显示记录的最佳方式。 除此之外,如果我想在不同的页面上显示相同的信息,我是否必须一次又一次地复制所有这些?

1 个答案:

答案 0 :(得分:1)

执行if ($result->num_rows > 0) {多次是低效的,查询所有记录然后只使用6.在检查返回并limit查询后循环获取。

$limit = empty($limit) ? 6 : (int) $limit;
$sql = "SELECT name,age from `members` limit $limit";
$result = $conn->query($sql);        
if ($result->num_rows > 0) {
     while ($row = $result->fetch_assoc()) {

您可以在其他页面上使用此方法:

<?php
$limit = 10;
include 'my_member_script.php';

将输出10个成员。