Gerep
June 14, 2010, 12:19am
1
Hi fellas,
I have the following array:
$where = array(“name”=>“Gerep”, “password”=>“123”);
And I’m creating a SQL statement and this array must be placed as the WHERE condition.
I need to get the result: SELECT * FROM user WHERE name = “Gerep” AND password = “123”
How can I do that?!
Thanks in advance
Gerep
June 14, 2010, 1:33pm
2
Thanks to everyone but I’m gonna stick with AnthonySterling’s solution.
$where = array(“name”=>“Gerep”, “password”=>“123”);
$count=0;
$whr_string=‘’;
foreach($where as $key=>$value){
if($count==0) $whr_string .= $key.‘="’.$value.‘"’;
else $whr_string .= ’ AND ‘.$key.’=“‘.$value.’”';
$count++;
}
echo “SELECT * FROM user WHERE $whr_string”;
I’d use [fphp]vsprintf/fphp .
<?php
$sql = vsprintf(
"SELECT id FROM table WHERE username = '%s' AND password = '%s' AND role = '%s' LIMIT 1",
array(
'anthony',
'h@x0rz',
'sooper-dooper-admin'
)
);
?>
However, just in-case you’re actually looking for prepared statements, take a look at PDO .
$where['name'];
$where['password'];
Unless you need to loop through the values? In which case I would suggest the foreach loop =)
oddz
June 14, 2010, 1:52am
6
$sql = "SELECT * FROM user WHERE name = '{$where['name']}' AND password = '{$where['password']}'";
May want to escape values (perhaps already escaped?)