0

最初に SELECT が可能かどうか、そうでない場合は mysqli を使用して同じクエリ内で db に INSERT できるかどうか迷っています。

これが私が今やっている方法です:

$sel_timestamp = mktime(0, 0, 0, date("n"), date("j")-$day, date("Y"));
$sel_tag = date("Y-m-d",$sel_timestamp);
$user = 1;

if ($result = $mysqli->query("SELECT * FROM ".$prefix."_active_users WHERE userid = $user AND DATE(timestamp) = '$sel_tag'")){

    if($result->num_rows < 1){

        $insert = "INSERT INTO ".$prefix."_active_users (userid,timestamp) VALUES (?,?)";
        $stmt = $mysqli->stmt_init();

        if($stmt->prepare($insert)){
            $stmt->bind_param('is', $user,$sel_tag);
            $stmt->execute();

            $stmt->close(); 
        }
    }
    $result->close();
}

私の場合、2 つのクエリを使用していますが、これを 1 つにマージすることは可能ですか?

前もって感謝します!

4

1 に答える 1

0

(userid、timestamp)にUNIQUE KEYがある場合は、使用できます

INSERT IGNORE INTO ".$prefix."_active_users (userid,timestamp) VALUES (?,?)

無視はキーワード

ただし、現在のコードをそのままにしておくことができます。2 つのクエリを使用しても問題はありません。

于 2013-02-03T14:12:47.933 に答える