비판 :
나는 값이 데이터베이스 행에 존재하는 경우 데이터베이스 삽입 전에 확인하려고합니다.
이건 내 코드입니다. 나는 데이터베이스에있는 경우 배열 값을 확인합니다. 만약 존재 "kullanici"및 데이터베이스에 "totoid"그나마 삽입.
if($sonuc == 1) {
$arr[] = '(
"' . $mac->kullanici . '",
"5",
"' . $mac->totoid . '"
)';
}
if($sonuc == 2) {
$arr[] = '(
"' . $mac->kullanici . '",
"10",
"' . $mac->totoid . '"
)';
}
if($sonuc == 3) {
$arr[] = '(
"' . $mac->kullanici . '",
"15",
"' . $mac->totoid . '"
)';
}
if($sonuc == 4) {
$arr[] = '(
"' . $mac->kullanici . '",
"20",
"' . $mac->totoid . '"
)';
}
if($sonuc == 5) {
$arr[] = '(
"' . $mac->kullanici . '",
"25",
"' . $mac->totoid . '"
)';
}
}
$sql = $this->db->query("INSERT INTO kazananlar (kullanici, kazanci, totoid) VALUES " . implode(',', $arr));
GMB :
내가 사용하는 것이 좋습니다 것입니다 insert... on duplicate key
구문을 . 이 기술의 상승은 가능한 경쟁 조건에 대해 걱정할 필요가 없습니다 있도록, 단일 쿼리를 사용할 수 있습니다.
이것은 첫 번째 열에 고유 제한 조건 작성하여 작품 kullanici
과 totoid
:
create unique index idx_kazananlar on kazananlar(kullanici, totoid);
그렇다면, 당신은 할 수 있습니다 :
insert into kazananlar (kullanici, kazanci, totoid)
values (...)
on duplicate key update kullanici = values(kullanici)
행이 이미 같은 존재하면 데이터베이스 검사 kullanici
및 totoid
; 그것은 않는 경우, 다음 on duplicate keys
절은 어떤 조합을 수행하지 않습니다.