Reputation: 585
i have an array
variable $smt_database = 257, 259, 261
Array ( [0] => 257, 259, 261 )
how can i insert this variable $smt_database in database like this :
$sql = "SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN ($smt_database)";
when i echo the sql it show array like below :
SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN (Array)
how can i change so it can like sql below :
SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN (257, 259, 261)
i know we must use implode and explode but i do not know how to implement them.
Upvotes: 0
Views: 70
Reputation: 23836
Use this:
$sql = "SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN (".$smt_database[0].")";
assuming you have array $smt_database = Array ( [0] => 257, 259, 261 )
Upvotes: 1
Reputation: 18600
Use with impload
and FIND_IN_SET
because IN
operator do not work on String value.
$your_text = implode(",",$smt_database);
$sql = "SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE FIND_IN_SET(member_id,$your_text)";
Upvotes: 1
Reputation: 9635
simple use implode
$in_text = implode(",", $smt_database);
// now use this variable in sql like
$sql = "SELECT first_name FROM '.TABLE_PREFIX.'members 'WHERE member_id IN ($in_text)";
above will work if the values in array are numeric
So if value in array are not numeric you need to single quotes on your value try
update 2 :
$new_array = array();
foreach($your_array as $val)
{
$new_array[] = "'".$val."'";
}
// now use implode
$in_text = implode(",", $new_array);
// now use this variable in sql
Upvotes: 2