2010-05-22 13 views
1

En utilisant un tableau comme celui-ci:Modifier MySQL Où Déclaration Basé sur la matrice

$data = array 
    (
     'host' => 1, 
     'country' => 'fr', 
    ) 

Je voudrais créer une requête MySQL qui utilise les valeurs du tableau pour former sa clause WHERE comme:

SELECT * 
FROM table 
WHERE host = 1 and country = 'fr' 

Comment puis-je générer cette chaîne de requête à utiliser avec MySQL?

Répondre

4

Essayez cette

$where = ''; 

foreach($data as $k => $v) { 
    if(!empty($where)) 
     $where .= ' AND '; 

    $where .= sprintf("`%s` = '%s'", mysql_real_escape_string($k), mysql_real_escape_string($v)); 
} 

mysql_query("SELECT * FROM `table` WHERE $where"); 
+0

C'est parfait! Merci beaucoup! – Ryan

+2

Pour ne pas oublier Little Bobby Tables: http://xkcd.com/327/ –

+1

Ajout d'un lien ci-dessous pour http://bobby-tables.com/php.html –

0

S'il vous plaît s'il vous plaît s'il vous plaît ne pas construire des instructions SQL avec des données intégrées. Regardez ici: http://bobby-tables.com/php.html

Questions connexes