フォームをアップロードし、そのデータを MySQL のテーブルに挿入しています。主キーは、一意でなければならない唯一のフィールドです。次のコードでは、エラー番号が 1062 (エントリの重複) であるかどうかを確認し、その場合のカスタム メッセージを表示します。しかし、テーブルに一意のデータを入力すると、まだエラーが発生することがあります。奇妙なことに、それは時々しか現れませんが、値が同じではないことは 100 確信しています...
$success = mysqli_stmt_execute( $stmt );
$errorCode = mysqli_errno( $con );
if ($success) {
move_uploaded_file( $_FILES['photo']['tmp_name'], $uniquePath);
?>
<div id="response">
<p>Success! The user has been added to the database</p>
</div>
<?
} else if ($errorCode == 1062) {
?>
<div id="response">
<p>
The user could not be added to the database.
The ID already exists!
</p>
</div>
<?
} else {
?>
<div id="response">
<p>
The user could not be added to the database.
MySQL error code: <? echo $errorCode ?>
</p>
</div>
<?
}
?>
</body>
</html>
SQL 関連のコードは次のようになります。
$sql = "INSERT INTO users ( id, photo_path) VALUES (?, ?)";
$stmt = mysqli_prepare( $con, $sql );
mysqli_stmt_bind_param( $stmt, 'is', $_POST['id'], $uniquePath);
ここで見落としている簡単なものはありますか?