diff options
Diffstat (limited to 'it_dbi.class')
-rw-r--r-- | it_dbi.class | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/it_dbi.class b/it_dbi.class index 7c13eec..b06a3ea 100644 --- a/it_dbi.class +++ b/it_dbi.class @@ -357,7 +357,8 @@ function _where($params) } else if ($field == "LIMIT") { - $stringquery .= " LIMIT " . (it::match('^[ ,\d]+$', $value) ?: it::error(['title' => "invalid LIMIT $value", 'body' => $params]) + 0); + if ($value !== false) # only false no null; uninitialized values should not unintentionally omit LIMIT + $stringquery .= " LIMIT " . (it::match('^[ ,\d]+$', $value) ?: it::error(['title' => "invalid LIMIT $value", 'body' => $params]) + 0); } else { @@ -617,14 +618,16 @@ function read($id=null) /** * Select a set of records from table and fetch the first one - * @param $query One or more optional arrays of (field => value) or sqlstring pairs. Defaults to null (select all records) - * Fields will be joined by AND - * Fields can contain a compare operator: 'name LIKE' => "j%" or 'amount >' => 100 - * Fields can start with - to prevent quoting of right side: '-modified' => "CURDATE()" - * $query can contain magic field 'SELECT' for things like 'COUNT(*)' or 'DISTINCT foo', defaults to '*' - * $query can contain magic field 'FROM' or 'JOIN' for things like 'tableA LEFT JOIN tableB ON a=b', defaults to table name - * $query can contain 'CALC_FOUND_ROWS', if true member var _found_rows contains number of matching rows before LIMIT - * $query can contain 'NOFETCH', if true the first row is not prefetched (e.g. when directly using _result) + * @param $query Vararg. Arrays of (field => value) pairs or plain string query parts. Default: Select all + * Fields will be joined by AND + * Fields can contain a compare operator: 'name LIKE' => "j%" or 'amount >' => 100 + * Fields can start with - to prevent quoting of right side: '-modified' => "CURDATE()" + * @param $query['SELECT'] expression to be returned, e.g. 'SELECT' => 'DISTINCT foo'. defaults to '*' + * @param $query['FROM'] table names to use for joins, e.g. 'FROM' => 'tableA LEFT JOIN tableB ON a=b' + * @param $query['JOIN'] like 'FROM' + * @param $query['CALC_FOUND_ROWS'] if true, if true member var _found_rows contains number of matching rows before LIMIT + * @param $query['LIMIT'] max number of rows to return; false for no limit + * @param $query['NOFETCH'] if true the first row is not prefetched (e.g. when directly using _result) * @return Number of matching rows, use iterate() to fetch the next record * @see iterate() * @see _where() |