플랫폼과 함께 이름의 중복을 찾는 데 약간의 코드가 필요합니다. 나중에 고유 ID를 찾는데도 적용됩니다.PDO로 중복 항목 검색
예를 들어 Xbox에 "Apple"이라는 서버가 있고 동일한 플랫폼으로 "Apple"이라는 이름의 레코드를 삽입하려고하면 거부됩니다. 그러나 PS3에서 "Apple"과 같은 이름을 가진 다른 플랫폼이 허용됩니다.
나는 아이디어를 찾고 답변을 찾고 있지만 어둠 속에서 중복을 확인하는 가장 좋은 방법은 무엇인지에 관해서 생각하고있다. 는 PHP의 등 매뉴얼과 없음에서
$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();
내가 다른 솔루션의 무리를 시도했습니다, 여기에서 몇 가지 다른 생각 작동하는 것처럼 :
는 지금까지 내가 가진 것입니다.
저는 PDO를 고수하려고합니다. 그러나 이것은 어디에서 돌아야 할지를 파악할 수없는 경우입니다. 이것이 mysql_ *에 있다면 아마도 mysql_affected_rows를 사용할 수 있지만 PDO에서는 단서가 없습니다. rowCount는 유망 해 보였지만 INSERT, UPDATE 또는 DELETE 문이 아니기 때문에 항상 0을 반환합니다.
아, phpMyAdmin에서 SQL 문을 시도했지만 작동합니다. 나는 간단한 이름/플랫폼으로 시도해 보았고 제대로 열을 발견했다.
누구든지 나를 도울 수 있다면 여기에 감사드립니다.
이것에 대한 나의 유일한 불만은 내가 그것을 벗어나야한다는 것이다. 그래서 나는 준비된 진술에 기대고있다. 쿼리 대신 준비된 명령문과 함께 SELECT COUNT (*) 문을 사용할 수 있습니까? 나는 정말 자신을 도주하는 것에 신뢰하지 않습니다. – Battleroid
사실 나는 이것을 준비된 진술로 시도해 보았습니다. 내가 언급 한 것처럼 SELECT COUNT (*)와 함께 fetchColumn을 사용 했으므로 조건과 일치하는 행을 안정적으로 반환합니다. – Battleroid