您好!欢迎访问家园网-www.jy.wang!

家园网

请结合示例表述出php的mysqli_fentch四种查询函数的不同,每个示例的语句的print_f的输出结果都要用pre进行格式化,让其更清晰

网络 作者:本站 点击:

以下是PHP中mysqli_fetch四种查询函数的详细对比及示例输出,通过print_r展示不同返回格式(用<pre>标签清晰呈现):


1. mysqli_fetch_array

特点‌:默认返回同时包含数字索引和关联索引的数组(MYSQLI_BOTH)。

$result = $conn->query("SELECT id, name FROM users");
$row = $result->fetch_array(); // 默认 MYSQLI_BOTH
echo "<pre>"; print_r($row); echo "</pre>";

输出‌:

Array
(
    [0] => 1         // 数字索引
    [id] => 1        // 关联索引
    [1] => "Alice"   // 数字索引
    [name] => "Alice" // 关联索引
)

2. mysqli_fetch_assoc

特点‌:仅返回关联索引数组(字段名作为键)。

$row = $result->fetch_assoc();
echo "<pre>"; print_r($row); echo "</pre>";

输出‌:

Array
(
    [id] => 1
    [name] => "Alice"
)

3. mysqli_fetch_row

特点‌:仅返回数字索引数组(按查询字段顺序)。

$row = $result->fetch_row();
echo "<pre>"; print_r($row); echo "</pre>";

输出‌:

Array
(
    [0] => 1
    [1] => "Alice"
)

4. mysqli_fetch_object

特点‌:返回对象,通过属性访问字段。

$row = $result->fetch_object();
echo "<pre>"; print_r($row); echo "</pre>";

输出‌:

stdClass Object
(
    [id] => 1
    [name] => "Alice"
)

关键区别总结:

  1. 索引方式‌:

    • fetch_array:双索引(数字+关联)。

    • fetch_assoc:仅关联索引。

    • fetch_row:仅数字索引。

    • fetch_object:对象属性。

  2. 性能‌:

    • fetch_row最快(无额外索引),fetch_object稍慢(需实例化)。

  3. 适用场景‌:

    • 明确字段名时用fetch_assoc

    • 需混合索引用fetch_array

    • 面向对象代码用fetch_object

    • 高性能处理用fetch_row


标签: