0

私は現在、いくつかのコードをmysqlからmysqliに変換しています。このクラスをダウンロードしました: https ://github.com/ajillion/PHP-MySQLi-Database-Class

私はこれと同じくらい簡単なことを試みています:

    $params = array('handset');
    $rs = $this->db->rawQuery("SELECT Id FROM productrates WHERE Type = ? ORDER BY GrossYearly ASC LIMIT 0,1 ", $params);   
    print_r($rs);

それは印刷されます:

配列([0] =>配列([Id] => 100017))

このクラスを使用しないときは、後で次のコードを使用していました。

        if ($rs->num_rows != 0) {
        $row = $rs->fetch_assoc();

ただし、これでエラーが発生します。

メッセージ:非オブジェクトのプロパティを取得しようとしています

したがって、結果は配列に戻ってきます-戻ってきた結果の数を読み取って、それらをループするにはどうすればよいですか?私はこれが単純でなければならないことを知っていますが、私は本当に自分自身を混乱させることができました、そして私は迅速な解決策が必要です。

詳細情報-rawQueryは次のとおりです。

public function rawQuery($query, $bindParams = NULL) 
{
    $this->_query = filter_var($query, FILTER_SANITIZE_STRING);
    $stmt = $this->_prepareQuery();

    if (gettype($bindParams) === 'array') {
        $params = array('');        // Create the empty 0 index
        foreach ($bindParams as $prop => $val) {
            $params[0] .= $this->_determineType($val);
            array_push($params, $bindParams[$prop]);
        }

                call_user_func_array(array($stmt, "bind_param"),$this->refValues($params));

    }

    $stmt->execute();
    $this->reset();

    $results = $this->_dynamicBindResults($stmt);
    return $results;
}
4

3 に答える 3

1
if ($rs) {
    $row = $rs[0];
}

ただし、これをダウンロードすることをお勧めします:https
://github.com/colshrapnel/safemysql$id を取得するのに2行しかかかりません

$sql = "SELECT Id FROM productrates WHERE Type = ?s ORDER BY GrossYearly LIMIT 1";
$id  = $this->db->getOne($sql, 'handset');   
于 2013-01-14T20:43:19.323 に答える
1

関数は配列を配列に返します:)したがって、最初の配列を表示するには:

$FirstArray = $rs[0];

この配列のすべてのアイテムを表示するには:

foreach ($FirstArray as $result)
    echo $result;

それが役に立てば幸い :)

于 2013-01-14T20:47:37.917 に答える
-2

PHP-MySQLi-Database-Classには活発な開発はありません。私はあなたがあなたの時間を無駄にするべきではないと思います..とにかく、それはあなたに任されています。

于 2013-01-14T20:46:27.617 に答える