J'ai une liste de valeurs et je voudrais vérifier si l'une des valeurs existe dans MySQL avec une instruction.Vérifier si des valeurs existent avec une instruction
$tags = "VALUE-IN-MySQL,DOESNT-EXIST1,DOESNT-EXIST2";
$tagArray = explode(",", $tags);
$qMarks = str_repeat('?,', count($tagArray) - 1) . '?';
$tagsCheck = $dbh->prepare("SELECT * FROM tags WHERE tag IN ($qMarks)");
$tagsCheck -> execute($tagArray);
echo $tagsCheck -> rowCount();
Le problème est que l'écho de 1 si au moins un existe dans la déclaration, mais je wan't de refuser la déclaration même si une seule valeur existe dans le groupe, mais d'autres ne le font pas.
Est-ce possible?
ne pas suivre la question très clair. Parlez-vous de "AND" déclaration SQL? où tag LIKE '?' ET tag comme '?' ... ou autre chose? –
@ i-- Je vais avoir une liste de valeurs délimitées par des virgules, si elle a 3 valeurs, 4 valeurs, ou 5. De toute façon, il va dans une chaîne, qui dans mon cas, je deviens un tableau . Je voudrais vérifier MySQL si l'une de ces valeurs dans la chaîne ou le tableau n'existe pas dans le mysql. – hellomello
Vous ne devriez pas utiliser une explosion simpliste comme ça. Cela ressemble à des données CSV, vous devriez donc utiliser [str_getcsv()] (http://php.net/str_getcsv) à la place. Considérez ce qui se passerait si l'une de ces valeurs contenait naturellement une virgule: «Bonjour, Newman», Jerry, Elaine. vous finiriez par chercher ** QUATRE ** articles, pas 3. –