1

繰り返さないために、私はそのgetName関数を書いて、私に代わって義務的な仕事をしました: データベースにクエリを実行するクラスは、SQL クエリのみを送信します。

  public function getVolumeServer($id)
    {
        $str = "SELECT *FROM site_volume_server WHERE site_id='$id'";
        return $this->getName($str);
    }

    public function getName($str)
    {
        $data = array();
        $query = $this->getQuery($str);

        if($query){
            foreach($query->result() as $row){
                array_push($data, $row->name);
            }
        }

        return $data;

    }
    public function getQuery($str){
    $data = array();
    $query = $this->db->query($str);

    if(!$query || $query->num_rows() == 0){
        return false;
    }
    return $query;
}

ただし、次のエラーが発生します。

<p>Severity: Notice</p>
<p>Message:  Undefined property: stdClass::$name</p>
<p>Filename: models/sitematrix_model.php</p>
<p>Line Number: 129</p>

129行目は$this->getName($str).

以前は、コードのその部分が関数に埋め込まれていたときはありませんでしたが、アクセスされるテーブルだけが異なる同様の関数があります。何かご意見は?ありがとう

4

1 に答える 1

0

dbから適切に取得されたアジェンダテーブルの時間列である$agenda->time_fromプロパティにアクセスしようとしていることを除いて、同じ問題が発生しています(var_dumpをチェックし、phpMyAdminで手動でクエリを実行しました)。__get()

デフォルトの呼び出しでparent::_get()は値が返されないため、これを行います。代わりに戻りますNULL

問題の回避策を見つけました。あなたがする必要があるのは、次のような値にアクセスすることだけです:

$agenda->_object['time_from']

これは正しい解決策ではないと思いますが、機能する解決策です。

于 2012-08-30T08:22:29.353 に答える