2012-10-25 3 views
0

내 웹 사이트에서 현재 사용자의 테이블에 포인트 행을 추가하려고하지만 모든 사용자에 대해 기본 포인트를 10으로 설정하려고하면 #1062 - Duplicate entry '10' for key 'PRIMARY' 오류가 계속 발생합니다. 나는이 두 사용자가 모두 여기에 (150) 등의 동일한 점수에 도달 결국 문제가되는 것을 볼 것은 내 테이블 여기포인트 행을 사용자에게 추가하는 방법은 무엇입니까?

enter image description here

enter image description here

enter image description here

에 대한 설정입니다 나의 질의

입니다
<?php 

session_start(); 
$db = mysqli_connect("host", "username", "password", "db_name"); 

$username = $_SESSION['username']; 

mysqli_query($db, 'UPDATE login_users SET Points=Points+1 WHERE username=$username'); 


?> 

포인트 수에 동일한 번호를 저장할 수있는 아이디어가 있습니까? 그것은 단지 숫자 대신에 "ID"로 취급하는 것 같습니다. 감사!

+0

설명 하단에 편집하여 추가했습니다. 감사합니다. –

+0

UPDATE login_users SET Points = Points + 1 username = '$ username' "'- 사용자 이름에 대한 인용문을 제외하고이 쿼리에 아무런 이상이 없습니다. 다른 쿼리를 실행하고있는 다른 곳이 있습니까? – codingbiz

+0

mysqli를 사용하고 계시다면, * 항상 * [SQL escaping methods] (http://bobby-tables.com/php)를 사용하십시오. 그것은'WHERE username =?'이어야하고 이후에'bind_param'을 호출해야합니다. 당신이 가지고있는 것은 ** 매우 위험합니다 ** 위험합니다. – tadman

답변

1

Points 열에 UNIQUE 색인이있는 것 같습니다. 따라서 의미가 없으므로 삭제해야합니다.

사용하는 데이터베이스 편집기의 스크린 샷 대신 SHOW CREATE TABLE login_users의 결과를 붙여 넣을 수 있습니다.

관련 문제