Index: Criteria.class.php =================================================================== RCS file: /home/cvs/repositories/xp/skeleton/rdbms/Criteria.class.php,v retrieving revision 1.7 diff -u -r1.7 Criteria.class.php --- Criteria.class.php 27 Dec 2004 11:28:09 -0000 1.7 +++ Criteria.class.php 9 Feb 2005 17:26:29 -0000 @@ -15,6 +15,9 @@ define('GREATER_THAN', '> ?'); define('LESS_EQUAL', '<= ?'); define('GREATER_EQUAL', '>= ?'); + define('BIT_AND', ' & ? = ?'); + define('BIT_OR', '= % | ?'); + define('BIT_XOR', '= % ^ ?'); define('ASCENDING', 'asc'); define('DESCENDING', 'desc'); @@ -121,7 +124,10 @@ $s.= sprintf( " [%s %s]\n", $condition[0], - str_replace('?', xp::stringOf($condition[1]), $condition[2]) + strtr($condition[2], array( + '?' => xp::stringOf($condition[1]), + '%' => $condition[0] + )) ); } return $s.'}'; @@ -148,7 +154,10 @@ } $sql.= $condition[0].' '.$db->prepare( - str_replace('?', $types[$condition[0]], $condition[2]).' and ', + strtr($condition[2], array( + '?' => $types[$condition[0]], + '%' => $condition[0] + )).' and ', $condition[1] ); }