なぜMySQLエラー1062を取得しているのですか?
-
22-10-2019 - |
質問
PHPページの1つで、次のエラーを取得し続けます。
SQLSTATE [23000]:整合性制約違反:1062キー「プライマリ」の重複エントリ「0」
なぜこれが起こっているのか、どこで起こっているのかわかりません。これが、この質問を投稿している理由です。
どこかでこのコードシーケンスで起こっていると思います。
// create user
$STH = $DBH -> prepare( "insert into users ( display_name, oauth_provider, oauth_uid ) values ( :value, :oauth_provider, :id )" );
$STH -> bindParam( ':value', $value, PDO::PARAM_STR, 255 );
$STH -> bindParam( ':id', $oauth_id, PDO::PARAM_STR, 255 );
$STH -> bindParam( ':oauth_provider', $oauth_provider, PDO::PARAM_STR, 255 );
$STH -> execute();
// get newly created user
$STH = $DBH -> prepare( "select * from users where oauth_uid = :id and ( display_name = :value or email = :value ) and oauth_provider = :oauth_provider" );
$STH -> bindParam( ':value', $value, PDO::PARAM_STR, 255 );
$STH -> bindParam( ':id', $oauth_id, PDO::PARAM_STR, 255 );
$STH -> bindParam( ':oauth_provider', $oauth_provider, PDO::PARAM_STR, 255 );
$STH -> execute();
$result = $STH -> fetch();
// create settings record with 0's
$STH = $DBH -> prepare( "insert into settings ( col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, user_id ) values ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, :id )" );
$STH -> bindParam( ':id', $result["id"], PDO::PARAM_INT, 4 );
$STH -> execute();
どの部分が問題を引き起こしているかを知るにはどうすればよいですか?
解決
MySQLからのコードとの関係はありません
プライマリキーの列をauto_incrementを1に再びドロップし、
キーをもう一度追加します
所属していません StackOverflow