0

データベースからカスタム文字列を選択するためのこの簡単なコードがあります:

protected function getListQuery()
{

              $db = JFactory::getDBO();
              $query = $db->getQuery(true);

              $query->select('*')
                    ->from('#__person');

              $name = 'tom';

              $query->where('name LIKE %'.$db->quote($name).'%');

              return $query;
} 

残念ながら、それは私にエラーを与えます:

警告: mysql_num_rows() は、パラメーター 1 がリソースであると想定します。これは、293 行目の xxx\public\libraries\joomla\database\database\mysql.php で指定されたブール値です。

where呼び出しを削除すると、すべてがうまくいきます。データベース クエリをデバッグできますか? 最終的なクエリが MySQL サーバーに送信される内容を確認したいと思います。

あなたの助けをいただければ幸いです。

4

1 に答える 1

1

私はこれをうまくやることができました:

protected function getListQuery()
{

    $db = JFactory::getDBO();
    $query = $db->getQuery(true);

    $query->select('*')
          ->from('#__person');

    $name = 'tom';

    $name = $db->Quote('%'.$db->escape($name, true).'%');
    $query->where($db->nameQuote('name').' LIKE '.$name);


    //debug the query  
    // echo nl2br(str_replace('#__','prefix_',$query)); die;

    return $query;

}

于 2012-12-07T13:48:41.420 に答える