簡體   English   中英

如何讀取並遍歷這些MySQLi結果?

[英]How do read and loop through these MySQLi results?

我目前正在將一些代碼從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;
}
if ($rs) {
    $row = $rs[0];
}

但最好下載這個: https : //github.com/colshrapnel/safemysql
您只需兩行即可獲得$ id

$sql = "SELECT Id FROM productrates WHERE Type = ?s ORDER BY GrossYearly LIMIT 1";
$id  = $this->db->getOne($sql, 'handset');   

您的函數將一個數組返回到一個數組中:)因此,要顯示第一個數組:

$FirstArray = $rs[0];

要顯示此數組中的所有項目:

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

希望能幫助到你 :)

PHP-MySQLi-Database-Class沒有積極的發展。 我不認為您應該浪費時間。無論如何,它留給您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM