2013-05-27 2 views
0

저는 PHP의 로그인 모듈에서 ID 생성 문제에 직면하고 있습니다.새로운 ID 생성하기 : 실제 ID 얻기

등록 부분에서 사용자 당 고유 ID를 생성해야합니다. 데이터베이스의 마지막 ID를 1 씩 증가시켜이 ID를 생성 할 수 있다고 생각했지만 작동하지 않는 것 같습니다.

username -> String 
password -> String 
usr_id -> int 

답변

5

이 작업을 수행하지 마십시오

$user = $_POST['post_username']; 
    $pass = $_POST['post_password']; 

    function generateID(){ 

    $aux = mysql_query("SELECT usr_id FROM users"); 

    $i = 0; 

    $resulArray = mysql_fetch_row($aux) or die("Error fetching!"); 
    $n = mysql_num_rows($aux); 

    $b = $resulArray[$i]; 
    $c = $b; 
    for($i = 0; $i < $n; $i = $i +1){ 
     $b = $resulArray[$i]; 
     if($b >= $c) $c = $b; 
    } 

    return $c + 1;} 

가 여기 내 MySQL의 구조입니다 :

여기 내 코드입니다. 그것은 신뢰할 수없고 경쟁 조건을 해결할 수 없습니다. 그냥 자동 증가 기본 키를 사용

CREATE TABLE users 
    id unsigned int auto_increment primary key, 
    ... 
); 

다음

INSERT INTO users (id, ....) VALUES (null, ...) 

이 본질적으로 신뢰할 수
$userID = mysql_last_insert_id(); 

이 경쟁 조건을 처리를하고,이 테이블의 고유 ID를 보장합니다. 사용자 정의 검증은 필요 없으며 id 필드를 자동으로 증가시키고 MySQL이 ID를 처리하도록합니다.

+0

작동합니다. 시간 내 줘서 고마워! – Akryllax