2

I would like to know how to perform pattern search using JDatabase

Here's my code:

$query->select('Common_name');
$query->from($db->quoteName('common_name'));
$query->where($db->quoteName('Common_name').' LIKE '. $db->quote('\'o%\''));
$db->setQuery($query);
$result = $db->loadResult();
1
  • The Joomla Documentation recommends using the 2nd parameter on both quote() and escape() when escape is nested inside of quote. This is to avoid performing double escaping. joomla.stackexchange.com/a/22712/12352 Commented Apr 19, 2018 at 22:00

1 Answer 1

5

try this

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

$query
  ->select('Common_name')
  ->from($db->qn('your_table_name'))
  ->where($db->qn('Common_name').' LIKE '. $db->quote($db->escape('o%')));

$db->setQuery($query);
$results = $db->loadObjectList(); // use loadResult() for single value result

Documentation is your best friend: https://docs.joomla.org/Accessing_the_database_using_JDatabase

7
  • it produced an error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE LIKE' at line 3 SQL=SELECT Common_name FROM WHERE LIKE
    – Joshua
    Commented Aug 9, 2016 at 5:43
  • It works fine to me. I added the $db, $query initialization code also above, please check.
    – Nagarjun
    Commented Aug 9, 2016 at 5:46
  • actually it still has the same error even if i already initialized the $db and $query
    – Joshua
    Commented Aug 9, 2016 at 5:56
  • can you post what is the code you write for ->from($db->qn('your_table_name'))
    – Nagarjun
    Commented Aug 9, 2016 at 6:05
  • ->from($db->qouteName('common_name'))
    – Joshua
    Commented Aug 9, 2016 at 6:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.