-1

コードスニペット「searchcar.php」から、「警告: mysqli_fetch_assoc() はパラメーター 1 が mysqli_result、配列指定されていることを期待しています」というエラーが表示されます。

$modelmake = $_POST['model_make'];
$result = $db->select('car_information','*', 'Model_Make LIKE \'%$modelmake%\''); 
while($row = mysqli_fetch_assoc($result))
{
    echo 'Model'.$row['model_make'];
}

「database.php」の選択機能のコード スニペットを次に示します。

 public function select(
        $table,
        $fields = '*',
        $where = '1=1',
        $order = '',
        $limit = '',
        $desc = false,
        $limitBegin = 0,
        $groupby = null,
        $monitoring = false
    ) //monitoring is set to true to view the actual query
    {
//  $query ='SELECT ' . $fields . ' FROM ' . $table ;
    $query = 'SELECT ' . $fields . ' FROM ' . $table . ' WHERE ' . $where;

        if (!empty($groupby)) {
            $query .= ' GROUP BY ' . $groupby;
        }

        if (!empty($order)) 
        {
            $query .= ' ORDER BY ' . $order;

            if ($desc) 
            {
                $query .= ' DESC';
            }
        }

        if (!empty($limit))
        {
            $query .= ' LIMIT ' . $limitBegin . ', ' . $limit;
        }

        $result = $this->_sendQuery($query);

        $resultArray = array();

        while ($row = mysqli_fetch_assoc($result)) 
        {
            $resultArray[] = $row;
        }

        if ($monitoring) 
        {       
            // If monitoring is activated, echo the query
            echo $query;
        }
        return $resultArray;
    }    

この行「while($row = mysqli_fetch_assoc($result))」を使用したいのですが、アドバイスをお願いします!

4

3 に答える 3

5

あなたのメソッドはではなくselectを返しています。これは、文句を言うのが正しいことを意味します。arrayresourcemysqli_fetch_assoc

良いニュースは、メソッドが結果の配列を返すことです。つまり、次のように置き換えることがselectできますwhile($row = mysqli_fetch_assoc($result))

foreach($result as $row)
于 2013-07-23T20:49:44.850 に答える
-1

mysqli_error() を使用http://www.php.net/manual/en/mysqli.errno.php

以前の MySQL 操作からのエラー メッセージのテキストを返します

mysqli_fetch_array()/mysqli_fetch_assoc()/mysqli_fetch_row() は、パラメーター 1 がリソースまたは mysqli_result であると想定し、ブール値を指定

MySQL コマンド ラインまたは phpMyAdmin などのツールからクエリを実行します。クエリに構文エラーがある場合は、それが何であるかがわかります。

引用符が正しいことを確認してください。クエリまたは値を引用符で囲まないと、クエリが失敗する可能性があります。

値をエスケープしていることを確認してください。クエリで引用符を使用すると、クエリが失敗する可能性があります (また、SQL インジェクションにさらされる可能性があります)。mysql_real_escape_string() を使用して入力をエスケープします。

于 2013-07-23T20:49:27.327 に答える