I would probably use a little function to help be build the SQL, it would allow for the input to be a little more forgiving.
PHP Code:
<?php
function get_feed_sql($feeds = ''){
$ids = null;
preg_match_all('~([0-9]+)~', $feeds, $matches);
if(false === empty($matches[0])){
$ids = implode("', '", $matches[0]);
}
return sprintf("SELECT foo FROM table WHERE id IN ('%s');", $ids);
}
PHP Code:
<?php
$feeds = '';
echo get_feed_sql($feeds);
/*
SELECT foo FROM table WHERE id IN ('');
*/
PHP Code:
<?php
$feeds = '12345';
echo get_feed_sql($feeds);
/*
SELECT foo FROM table WHERE id IN ('12345');
*/
PHP Code:
<?php
$feeds = 12345;
echo get_feed_sql($feeds);
/*
SELECT foo FROM table WHERE id IN ('12345');
*/
PHP Code:
<?php
$feeds = '12345,67890';
echo get_feed_sql($feeds);
/*
SELECT foo FROM table WHERE id IN ('12345', '67890');
*/
PHP Code:
<?php
$feeds = ' 12345, 67890 ';
echo get_feed_sql($feeds);
/*
SELECT foo FROM table WHERE id IN ('12345', '67890');
*/
Does that make much sense? Hopefully you can see how only sets of numbers are passed to the SQL string and anything else is filtered out.
Bookmarks