为什么我得到MySQL错误1062?

时间:2011-07-23 17:50:03

标签: php mysql pdo mysql-error-1062

在我的一个php页面上,我不断收到以下错误:

  

SQLSTATE [23000]:完整性约束违规:1062键'PRIMARY'重复输入'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();

如何找出导致问题的部分?

1 个答案:

答案 0 :(得分:2)

它来自mysql与代码无关

再次将主键alter auto_increment的列拖放到<和

再次添加密钥