This is an outdated version of the Manual. Visit the NEW Manual

Finding Beans

RedBeanPHP allows you to use good old SQL to find beans:

R::find('page',' title = ? '
$title )

The result of a find operation is an array of beans; the IDs are used as keys. Find takes 3 arguments; the type of bean you are looking for, the SQL query and an array containing the values to be used for the question marks. Named slots are supported as well:

' title = :title LIMIT :limit'
':limit' => $limit
':title' => $title 

...and so are IN-clauses:

' id IN ('.R::genSlots($ids).') '$ids);

If you don't use any conditions but you just want to ORDER or LIMIT result rows, use findAll():

' ORDER BY title LIMIT 2 ');

To find just one bean; use findOne():

' code = ? ',array($code));

findOne returns the first bean in the result set. Use findLast() to get the last bean.

You can only bind literal values. This will not work: "ORDER BY :sortcolumn DESC" - because the parameter refers to a column, NOT a literal.

Return values

If no beans are found, find() and findAll() return an empty array, findOne(), findFirst() and findLast() return NULL.

There is no need to use mysql_real_escape, just bind the parameters to the slots in the query. Never use PHP variables directly in your SQL string!


RedBeanPHP Easy ORM for PHP © 2014 Gabor de Mooij and the RedBeanPHP community - Licensed New BSD/GPLv2