首页 > 解决方案 > mysqli_query 的输出是什么?

问题描述

因此,我在学习中写笔记,并解释在连接、获取和关闭数据库时每行代码中“发生了什么”。

$conn = mysqli_connect();

$varr = "SELECT * FROM table;";

$varr2 = mysqli_query($conn, $varr);

如果我使用

var_dump($varr2)

我的输出是:

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(5) ["lengths"]=> NULL ["num_rows"]=> int(1 ) [“类型”]=> int(0) }

这些数据是什么意思?

根据定义,mysqli_query对数据库进行查询,查询的定义是问一个问题。我没有看到输出之间的任何联系

var_dump(mysqli_query)

及其定义。

标签: phpmysqlmysqli

解决方案


我相信这是一个公平的问题。这也是了解事物如何运作的一个很好的意图。

然而,一个事物做什么和它输出什么是两件不同的事情。mysqli_query 不打算输出任何东西。所以你只是有点太深了,误入歧途。

“mysqli 查询做什么”这个问题的答案相当简单:它针对数据库运行您的查询。

它返回的是不同的东西。对于SELECT查询,它返回mysqli_result 类的对象。因此有这样的输出。

需要此对象才能使用选定的数据。您可以使用此对象的方法和属性来获取有关返回数据的信息。

  • 尽管您永远不需要它们,但有几个属性。然而,属性描述了返回的结果集,而不是整个表。如果您只选择一列,则字段计数将为 1,而不是 5。尽管您始终可以计算提取行中的字段数,但这个数字相当无用。行数也是如此。
  • 您可能只使用三种方法 - fetch_assoc() 或 fetch_all() 大部分时间取决于预期的行数,而 fetch_row() 偶尔会在 fetch_assoc() 不方便时使用。

一个重要的说明。

您实际上很少使用 mysqli_query(),因为大多数时候我们使用 PHP 变量运行 SQL 查询。并且一旦查询中要使用单个变量,就必须使用另一组函数而不是 mysql_query()。这是我解释该过程的文章,Mysqli SELECT query withprepared statements

希望现在很清楚。


推荐阅读