0
저는 PHP의 로그인 모듈에서 ID 생성 문제에 직면하고 있습니다.새로운 ID 생성하기 : 실제 ID 얻기
등록 부분에서 사용자 당 고유 ID를 생성해야합니다. 데이터베이스의 마지막 ID를 1 씩 증가시켜이 ID를 생성 할 수 있다고 생각했지만 작동하지 않는 것 같습니다.
username -> String
password -> String
usr_id -> int
저는 PHP의 로그인 모듈에서 ID 생성 문제에 직면하고 있습니다.새로운 ID 생성하기 : 실제 ID 얻기
등록 부분에서 사용자 당 고유 ID를 생성해야합니다. 데이터베이스의 마지막 ID를 1 씩 증가시켜이 ID를 생성 할 수 있다고 생각했지만 작동하지 않는 것 같습니다.
username -> String
password -> String
usr_id -> int
이 작업을 수행하지 마십시오
$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를 처리하도록합니다.
작동합니다. 시간 내 줘서 고마워! – Akryllax