重複の可能性:
新しいMysqliオブジェクトがNull
MVCフレームワーク用のデータベースクラスの構築から始めました。これを構築している間、私はそれを正しく機能させるために単純なクエリとテーブルを試しています。
私は次のクエリを実行しようとしていました:
SELECT * FROM mvc_test
これは3行を返すはずです:
1 | テスト
2 | test2
3 | test3
次の方法を使用してクエリを実行します。
<?php $this->result = $this->conn->query($this->q); ?>
$ this->connは次のとおりです。
<?php
$this->conn = new mysqli($this->reg->conf->database['host'],
$this->reg->conf->database['user'],
$this->reg->conf->database['password'],
$this->reg->conf->database['database']);
?>
$ this-> reg-> conf-> databaseには、ホスト、データベースなどのすべての値が含まれています。これは機能しますが、接続があります。
さて、var_dumpすると、次のような結果になります。
<?php var_dump($this->result); ?>
私はこれを手に入れます:
object(mysqli_result)[9]
public'current_field' => null
public'field_count' => null
public'lengths' => null
public'num_rows' => null
public'type' => null
ただし、前に述べたように、少なくとも3行が含まれている必要があるため、num_rowsは「3」であると予想されます。
ここで、var_dumpを実行すると、結果のnum_rowsは次のようになります。
<?php var_dump($this->result->num_rows); ?>
応答として「int3」を取得します。
結論:最初のvar_dumpではnullですが、さらに詳しく調べると3になります。したがって、3行を読み取ります。別の行(4番目)を追加すると、期待どおりに4が返されます。
私の質問は、var_dumpが正しく機能しないのはなぜですか?なぜ最初はnullと表示されますが、詳しく調べると価値があります。
事前のおかげで、私もエラーが発生しないので、これには本当に苦労しています。