Php $db->;查询($query)和$result->;行数
我不熟悉面向对象的php。我明白这句话的意思Php $db->;查询($query)和$result->;行数,php,object,mysqli,Php,Object,Mysqli,我不熟悉面向对象的php。我明白这句话的意思 $result = $db->query($query); 这里$db是引用类mysqli实例的对象。对吧? 但我不明白 $total_num_rows = $result->num_rows; 及 我知道他们做什么。但我无法理解为什么它写的是$result-> 整个脚本: <?php $host = "localhost"; $username = "root"; $password = ""; $dbname = "com
$result = $db->query($query);
这里$db是引用类mysqli实例的对象。对吧?
但我不明白
$total_num_rows = $result->num_rows;
及
我知道他们做什么。但我无法理解为什么它写的是$result->
整个脚本:
<?php
$host = "localhost";
$username = "root";
$password = "";
$dbname = "compdb";
@ $db = new mysqli($host, $username, $password, $dbname);
if(mysqli_connect_errno())
{
die("Connection could not be established");
}
$query = "SELECT company_id FROM company_basic_details WHERE company_name = 'ABC'";
$result = $db->query($query);
$total_num_rows = $result->num_rows;
echo "The Results Are : <br>";
while($row = $result->fetch_array())
{
echo $row['company_id'];
}
来自$db的查询正在传回包含您的结果的mysqli_result对象的实例,这就是为什么您使用来自$result而不是$db的方法。$db实例仅包含您的请求
你可以看看这里,更好地了解传递回来的信息 当您执行查询时,您将得到一个新对象作为响应(Mysqli_Result的实例),前提是不存在将返回false的查询错误
此新对象表示查询的结果。但不是数据库连接本身。它有一个属性$result->num_rows
,用于获取结果集中的行数$result->fetch_array()
将在每次调用它(使用内部指针)时返回一个新行(作为数组)。假设您是OOP(面向对象编程)的新手,我将尽我所能带您完成
当您得到一个连接对象$db
时,您可以使用它来调用实例方法
表达式$result=$db->query($query)
表示使用$db
对象调用查询方法,然后传入上面创建的$query
。因此,->操作符
表示在这种情况下调用方法的对象
此语句现在创建一个$result
对象,该对象用于$total\u num\u rows=$result->num\u rows代码>。此行使用$result
对象,获取行数并将其存储在变量$total\u num\u rows
中。这就像是在习惯于数组的情况下获取数组的长度
在您提到的行中,$row=$result->fetch\u array()
,使用$result
对象调用fetch\u array()
方法,该方法将一行数据作为数组返回,并将其存储在$row
中,您是否更熟悉调用函数并将$result传递给它?这就是OOP。您可以对对象执行这些方法。结果是一个结果集,它可以被迭代,它可以告诉你行数。熟悉@ficuscr将有助于您了解$result在这里是什么?它是一个数组吗?或者它可以被称为一个物体?@StacyJ它是一个物体。$db
实例上的query
方法返回一个对象作为其响应var\u dump
它,您告诉我:)它实际上是一个对象。其中之一再次,看看我链接的类文档。清楚地显示返回的对象,然后依次显示可用于该对象的方法。只需编辑以澄清一点,因为OP似乎有点混淆它是数组还是对象
<?php
$host = "localhost";
$username = "root";
$password = "";
$dbname = "compdb";
@ $db = new mysqli($host, $username, $password, $dbname);
if(mysqli_connect_errno())
{
die("Connection could not be established");
}
$query = "SELECT company_id FROM company_basic_details WHERE company_name = 'ABC'";
$result = $db->query($query);
$total_num_rows = $result->num_rows;
echo "The Results Are : <br>";
while($row = $result->fetch_array())
{
echo $row['company_id'];
}