Pourquoi suis-je recevoir une erreur de MySQL 1062?
-
22-10-2019 - |
Question
Sur un de mes pages php, je continue à obtenir l'erreur suivante:
SQLSTATE [23000]: Intégrité violation de contrainte: 1062 entrée en double '0' pour la touche 'primaire'
Je ne sais pas pourquoi ou si cela se produit, ce qui est la raison pour laquelle je poste cette question.
Je pense que ça se passe dans cette séquence quelque part de code.
// 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();
Comment puis-je savoir quelle partie est à l'origine du problème?
La solution
il est de pas mysql par rapport au code
déposer la colonne de auto_increment alter clé primaire à une fois et
ajouter à nouveau la touche
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow