Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么会出现MySQL错误1062?_Php_Mysql_Pdo_Mysql Error 1062 - Fatal编程技术网

Php 为什么会出现MySQL错误1062?

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,

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

SQLSTATE[23000]:完整性约束冲突:键“PRIMARY”的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,与代码无关

将主键alter auto_increment的列再次删除为1,然后重试


再次添加密钥

从scratch@Negin,我不明白。我截断了表以便开始一些测试。您的主键是一个整数,不是吗?是自动增量吗?我有时会遇到这个问题,我想这是因为mysql与代码无关。请将主键的列alter auto_increment再次改为1,然后在users表中再次添加键yes。好像我忘了在设置表中将其设置为自动递增。这就是问题所在吗?