Frage

Auf einer meiner PHP -Seiten erhalte ich immer wieder den folgenden Fehler:

SQLState [23000]: Verstoß gegen Integritätsbeschränkung: 1062 Duplikateintrag '0' für Schlüssel 'Primär'

Ich weiß nicht warum oder wo dies geschieht. Das ist der Grund, warum ich diese Frage poste.

Ich denke, es passiert irgendwo in dieser Codesequenz.

// 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();

Wie finde ich heraus, welcher Teil das Problem verursacht?

War es hilfreich?

Lösung

Es ist aus MySQL keine Beziehung zum Code

Lassen Sie die Spalte des Primärschlüssels -Alters auto_increment wieder auf 1 und wieder 1

Fügen Sie den Schlüssel erneut hinzu

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top