0

オブジェクト指向php初心者です。この行の意味がわかりました

$result = $db->query($query);

ここで $db はクラス mysqli のインスタンスを参照するオブジェクトです。右?

でも、私は分からない

$total_num_rows = $result->num_rows;

while($row = $result->fetch_array())

私は彼らが何をするか知っています。しかし、なぜ $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'];
}

?>

4

3 に答える 3

1

あなたがOOP (オブジェクト指向プログラミング) に慣れていないことを前提として、できる限り順を追って説明します。

それを取得$dbすると、取得した接続オブジェクトになり、それを使用してインスタンス メソッドを呼び出すことができます。

この式$result = $db->query($query)は、オブジェクトを使用して query メソッドを呼び出し、上で作成$dbした を渡すことを示し$queryています。この場合、 はメソッドを呼び出す-> operatorオブジェクトを表します。

このステートメントは、$resultで使用されるオブジェクトを作成します$total_num_rows = $result->num_rows;。この行は$resultオブジェクトを使用し、行数を取得して変数に格納します$total_num_rows。これは、配列に慣れている場合に配列の長さを取得するようなものです。

あなたが話した行で$row = $result->fetch_array()は、$resultオブジェクトを使用してfetch_array()、単一行のデータを配列として返すメソッドを呼び出し、それを に格納します$row

于 2015-04-27T06:08:45.823 に答える
0

$db からのクエリは、結果を含む mysqli_result オブジェクトのインスタンスを返しています。これが、$db ではなく $result からのメソッドを使用している理由です。$db インスタンスには、リクエストが含まれているだけです。

ここを見ると、何が返されているかをよりよく理解できます。http://www.php.net/manual/en/class.mysqli-result.php

于 2013-02-05T20:33:19.890 に答える
0

クエリを実行すると、代わりに false を返すクエリ エラーがないと仮定して、新しいオブジェクトを応答 (Mysqli_Result のインスタンス) として取得します。

この新しいオブジェクトは、クエリの結果を表します。ただし、データベース接続自体ではありません。$result->num_rows結果セットの行数を取得するプロパティがあります。$result->fetch_array()呼び出されるたびに新しい行を(配列として)返します(内部ポインターを使用します)。

于 2013-02-05T20:33:27.617 に答える