2012-11-06 3 views
0

J'ai regardé partout, mais je ne peux pas trouver de détails sur la possibilité ou non de passer facilement et facilement un tableau directement dans l'argument de l'opérateur IN dans un MySQL préparé déclaration. La plupart des endroits suggèrent de briser manuellement la matrice et de construire la déclaration, mais il doit y avoir une meilleure solution.mysqli_stmt, arrays, & IN opérateur

Y a-t-il?

Un grand merci à l'avance!

EDIT

Désolé, laissé que c'est une déclaration préparée par mysqli_stmt et non la manière traditionnelle. :(

+0

J'ai fait un exemple qui utilise des variables et call_user_func_array dynamiques; http://stackoverflow.com/a/31562035/165330. Ce n'est probablement pas le chemin à suivre, peut-être que quelque chose comme ça sera dans une nouvelle version de PHP un jour. – imme

Répondre

0

Parce que IN opérateur prend des valeurs dans des guillemets simples virgules ' chaîne séparée ('1','2','3') ou ('alpha','beta','gama') alors que lorsque nous utilisons ensemble en service IN et extrait ensuite devenir une chaîne sans '

donc à utiliser et tableau dans IN opérateur vous devez faire ci-dessous manière

IN (".implode(',',$arr).")") 
0

vous pouvez utiliser implode() convertir tableau en chaînes,

Pour exemple:

$array = array(100, 101, 200, 300); 

$query = 'SELECT * FROM table WHERE id IN ('.implode(',', $array).')';