PHP mysql query using wildcards -
i in search of way use wildcards following mysql query.
public function getsetsonmonth($setsid, $setsdate, $offset, $count) { $sql = sprintf("select * " . $this->_prefix . "media_set f inner join " . $this->_prefix . "media_set_sets_assoc fs on fs.set_id = f.set_id , fs.sets_id = '%s' f.posted '%s' , f.is_active = 1 order f.set_id desc limit %s, %s", mysql_real_escape_string($setsid), mysql_real_escape_string($setsdate), mysql_real_escape_string($offset), mysql_real_escape_string($count)); echo $sql; exit; $rs = mysql_query($sql); $rows = array(); while ($row = mysql_fetch_object($rs)) { $rows[] = $row; } mysql_free_result($rs); return new xxx_model_recordset($rows, $this); } what looking month (where f.posted '%s') located have tried using % in various ways , errors. instance (where f.posted '%s %') returns error (warning: sprintf(): few arguments in..).
i have tried use (where f.posted '$setsdate%') not return sql error, makes query limit same date , single quote removed after % sign in sql printout.
oddly if reverse , put percent sign in front of $setsdate (%setsdate) cancels out after % , shows everything.
any appreciated.
updated 9:35 est 03/10
here sql output ('%s %%'): select * media_set f inner join media_set_sets_assoc fs on fs.set_id = f.set_id , fs.sets_id = '1' f.posted '201312 %' , f.is_active = 1 order f.set_id desc limit 0, 18
here sql output ('%s%%'): f.posted '201312%'
notice no space between.
i believe should escaping percentage sign use in statement, such:
where f.posted '%s %%'
Comments
Post a Comment