0

フォームをアップロードし、そのデータを 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);

ここで見落としている簡単なものはありますか?

4

0 に答える 0