3
SELECTとUPDATEクエリを組み合わせて、行の重複を避けるためです。私は同じコードが異なるユーザのために使用されることを避けるために、一度$getrcodesql
と$updatercodesql
を実行したいと思いますSELECTとUPDATEを組み合わせて重複する選択を避ける
private function getNewRCode() {
$getrcodesql = "SELECT * FROM `{$this->mysqlprefix}codes` WHERE `used` = 0 LIMIT 1;";
$getrcodequery = $this->mysqlconn->query($getrcodesql);
if(@$getrcodequery->num_rows > 0){
$rcode = $getrcodequery->fetch_array();
$updatercodesql = "UPDATE `{$this->mysqlprefix}codes` SET `used` = '1' WHERE `id` = {$rcode['id']};";
$this->mysqlconn->query($updatercodesql);
$updateusersql = "UPDATE `{$this->mysqlprefix}users` SET `used_codes` = `used_codes`+1, `last_code` = '{$rcode['code']}', `last_code_date` = NOW() WHERE `uid` = {$this->uid};";
$this->mysqlconn->query($updateusersql);
$output = array('code' => $rcode['code'],
'time' => time() + 60*60*$this->houroffset,
'now' => time()
);
return $output;
}
}
:
はここに私のコード例です。
私の問題を理解し、これに対する解決策をご理解いただければ幸いです。
挨拶、 フレデリック
私はそれをこのように実装します、この素晴らしいアイデアをありがとうございました。 –