php - 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)
及其定义。
解决方案
我相信这是一个公平的问题。这也是了解事物如何运作的一个很好的意图。
然而,一个事物做什么和它输出什么是两件不同的事情。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
希望现在很清楚。