Php 为什么会出现MySQL错误1062?
在我的一个php页面上,我不断遇到以下错误: SQLSTATE[23000]:完整性约束冲突:键“PRIMARY”的1062重复项“0” 我不知道为什么会发生这种情况,也不知道发生在哪里,这就是我发布这个问题的原因 我想它是在这个代码序列的某个地方发生的Php 为什么会出现MySQL错误1062?,php,mysql,pdo,mysql-error-1062,Php,Mysql,Pdo,Mysql Error 1062,在我的一个php页面上,我不断遇到以下错误: SQLSTATE[23000]:完整性约束冲突:键“PRIMARY”的1062重复项“0” 我不知道为什么会发生这种情况,也不知道发生在哪里,这就是我发布这个问题的原因 我想它是在这个代码序列的某个地方发生的 // create user $STH = $DBH -> prepare( "insert into users ( display_name, oauth_provider, oauth_uid ) values ( :value,
// 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,与代码无关 将主键alter auto_increment的列再次删除为1,然后重试
再次添加密钥从scratch@Negin,我不明白。我截断了表以便开始一些测试。您的主键是一个整数,不是吗?是自动增量吗?我有时会遇到这个问题,我想这是因为mysql与代码无关。请将主键的列alter auto_increment再次改为1,然后在users表中再次添加键yes。好像我忘了在设置表中将其设置为自动递增。这就是问题所在吗?