Je rencontre des problèmes avec un peu de code destiné à trouver des doublons d'un nom avec la plate-forme. Cela sera également adapté pour trouver des identifiants uniques plus tard. Par exemple, s'il y a un serveur nommé "Apple" sur la Xbox et que vous essayez d'insérer un enregistrement avec le nom "Apple" avec la même plate-forme, il le rejettera. Cependant, une autre plate-forme avec le même nom est autorisée, comme "Apple" avec PS3.Recherche d'entrées en double avec PDO
J'ai essayé de trouver des idées et de chercher des réponses, mais je ne sais pas du tout quelle est la meilleure façon de vérifier les doublons.
Jusqu'à présent, c'est ce que j'ai:
$nameDuplicate_sql = $db->prepare("SELECT * FROM `servers` WHERE name=':name' AND platform=':platform'");
$nameDuplicate_sql->bindValue(':name', $name);
$nameDuplicate_sql->bindValue(':platform', $platform);
$nameDuplicate_sql->execute();
J'ai essayé un tas de différentes solutions, certains d'ici, d'autres de manuel, etc Aucun du PHP semble fonctionner bien.
J'essaie de coller avec PDO, cependant, c'est un exemple où je ne peux pas savoir où tourner. Si c'était dans mysql_ *, je pourrais probablement utiliser mysql_affected_rows, mais avec PDO, je n'ai aucune idée. rowCount semble prometteur, mais il renvoie toujours 0 car il ne s'agit pas d'une instruction INSERT, UPDATE ou DELETE.
Oh, et j'ai essayé l'instruction SQL dans phpMyAdmin et ça marche; Je l'ai essayé avec un nom simple/plate-forme et il a trouvé des lignes correctement.
Si quelqu'un peut m'aider ici, je l'apprécierais.
Mes seuls scrupules avec ceci est que je devrais y échapper, c'est pourquoi je préfère me pencher vers une déclaration préparée. Serait-il possible d'utiliser une instruction SELECT COUNT (*) avec une instruction préparée au lieu d'une requête? Je ne me fais vraiment pas confiance en m'échappant. – Battleroid
En fait, j'ai essayé cela avec une déclaration préparée et cela fonctionne. J'ai utilisé fetchColumn avec SELECT COUNT (*) comme vous l'avez mentionné et il retourne de manière fiable les lignes qui correspondent à la condition. – Battleroid