当前位置:首页 > 行业动态 > 正文

从数据库结果中填充PHP数组

php,$result = $mysqli->query("SELECT id, name FROM users");,while ($row = $result->fetch_assoc()) {, $users[] = $row;,},

在PHP中,从数据库结果中填充数组是一个常见的操作,主要涉及到连接数据库、执行查询以及处理查询结果,以下是详细的步骤和示例代码:

使用mysqli扩展

1、连接数据库

使用mysqli_connect()函数连接到数据库,该函数需要四个参数:服务器地址、用户名、密码和数据库名。

 $conn = mysqli_connect("localhost", "username", "password", "database");

2、检查连接

在尝试连接数据库后,应该检查连接是否成功,如果连接失败,可以输出错误信息并停止脚本执行。

 if (!$conn) {
         die("Connection failed: " . mysqli_connect_error());
     }

3、执行查询

使用mysqli_query()函数执行SQL查询,该函数接受两个参数:数据库连接和SQL查询字符串,要获取所有用户的信息,可以执行以下查询:

 $sql = "SELECT id, name, email FROM users";
     $result = mysqli_query($conn, $sql);

4、处理结果集并填充数组

从数据库结果中填充PHP数组

使用mysqli_fetch_assoc()mysqli_fetch_row()函数遍历结果集,并将每一行数据添加到数组中。mysqli_fetch_assoc()返回关联数组,而mysqli_fetch_row()返回索引数组,使用mysqli_fetch_assoc()将结果存储在关联数组中:

 $users = array();
     while ($row = mysqli_fetch_assoc($result)) {
         $users[] = $row;
     }

5、关闭连接

完成数据库操作后,应该关闭数据库连接以释放资源,使用mysqli_close()函数关闭连接。

 mysqli_close($conn);

6、完整示例

 <?php
   $conn = mysqli_connect("localhost", "username", "password", "database");
   if (!$conn) {
       die("Connection failed: " . mysqli_connect_error());
   }
   $sql = "SELECT id, name, email FROM users";
   $result = mysqli_query($conn, $sql);
   $users = array();
   while ($row = mysqli_fetch_assoc($result)) {
       $users[] = $row;
   }
   mysqli_close($conn);
   ?>

使用PDO扩展

1、连接数据库

使用new PDO()构造函数连接到数据库,该构造函数需要四个参数:数据源名称(DSN)、用户名、密码和可选的驱动程序选项。

从数据库结果中填充PHP数组

 $dsn = "mysql:host=localhost;dbname=database";
     $username = "username";
     $password = "password";
     try {
         $conn = new PDO($dsn, $username, $password);
     } catch (PDOException $e) {
         die("Connection failed: " . $e->getMessage());
     }

2、设置错误模式(可选)

可以设置PDO的错误模式,以便在发生错误时抛出异常,这有助于调试和错误处理。

 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

3、执行查询

使用$conn->query()方法执行SQL查询,该方法返回一个PDOStatement对象,该对象用于处理查询结果。

 $sql = "SELECT id, name, email FROM users";
     $stmt = $conn->query($sql);

4、处理结果集并填充数组

使用$stmt->fetchAll(PDO::FETCH_ASSOC)方法将整个结果集作为关联数组返回,该方法直接返回一个包含所有行的二维数组。

从数据库结果中填充PHP数组

 $users = $stmt->fetchAll(PDO::FETCH_ASSOC);

5、关闭连接

PDO在脚本结束时会自动关闭数据库连接,因此不需要显式调用关闭连接的方法,为了确保资源被正确释放,可以在不需要数据库连接时将其设置为null

 $conn = null;

6、完整示例

 <?php
   $dsn = "mysql:host=localhost;dbname=database";
   $username = "username";
   $password = "password";
   try {
       $conn = new PDO($dsn, $username, $password);
       $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       $sql = "SELECT id, name, email FROM users";
       $stmt = $conn->query($sql);
       $users = $stmt->fetchAll(PDO::FETCH_ASSOC);
   } catch (PDOException $e) {
       die("Connection failed: " . $e->getMessage());
   }
   $conn = null;
   ?>

通过以上步骤,你可以轻松地将从数据库查询得到的结果填充到PHP数组中,并根据需要进行进一步的处理或显示,无论是使用mysqli还是PDO扩展,都提供了灵活且强大的工具来与数据库进行交互。