无法在列表框中显示数据库中的所有值

所以我有一个可以在其中添加/删除值的数据库。该表被命名为详细信息。下面的代码使用db_connect.php连接到数据库。

        <select name="areas">
                <?php 
                include "db_connect.php";
                $displayArea = "SELECT area FROM details";
                $sql = mysqli_query($link, $displayArea);
                while ($row =  mysqli_fetch_assoc($sql))
                {
                    echo "<option value=\"areas\">" . $row['area'] . "</option>";
                }
                ?>

        </select>

下拉列表采用area的第一个值,所以我知道它正在连接。但是我希望它显示数据库中的所有面积值。甚至以后会添加的新值。我怎样才能做到这一点?

评论
  • ueaque
    ueaque 回复

    我认为使用PDO

    把它放在你的db_connect.php中

    <?php
       /* Connect to a MySQL database using driver invocation */
       $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
       $user = 'dbuser';
       $password = 'dbpass';
    
       try {
         $db = new PDO($dsn, $user, $password);
       } catch (PDOException $e) {
         echo 'Connection failed: ' . $e->getMessage();
       }
    
    ?>
    

    我的示例代码

    <?php 
       $stmt = $db->prepare("SELECT area FROM details");
       $stmt->execute();
       $result = $stmt->fetchAll(); 
    ?>
    
    <select name="areas">
       <?php foreach($result as $row){ ?>
          <option value="areas"><?=$row['area'] ?></option>
       <?php } ?>
    </select>