プラットフォームと一緒に名前の重複を見つけることを目的としたコードのビットに問題があります。これは、後で一意のIDを見つけるためにも適用されます。
したがって、たとえば、Xboxに「Apple」という名前のサーバーがあり、同じプラットフォームで「Apple」という名前のレコードを挿入しようとすると、そのサーバーは拒否されます。ただし、PS3の「Apple」など、同じ名前の別のプラットフォームは許可されます。
私はアイデアを考え出し、答えを探してみましたが、重複をチェックするための最善の方法については、ちょっと暗闇の中にいます。
これまでのところ、これは私が持っているものです:
$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();
私はたくさんの異なる解決策を試しました。いくつかはここから、他はPHPのマニュアルなどからです。しかし、どれもうまくいかないようです。
私はPDOに固執しようとしていますが、これはどこを向いたらよいかわからない1つの例です。これがmysql_*にある場合、おそらくmysql_affected_rowsを使用できますが、PDOでは手がかりがありません。rowCountは有望に見えましたが、これはINSERT、UPDATE、またはDELETEステートメントではないため、常に0を返します。
ああ、phpMyAdminでSQLステートメントを試しましたが、機能します。単純な名前/プラットフォームで試してみたところ、行が正しく見つかりました。
誰かがここで私を手伝ってくれるなら、私はそれをいただければ幸いです。