如果可以先使用SELECT,如果不是真的话,我会在同一个查询中使用mysqli INSERT进入db吗?
以下是我现在的处理方式:
$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个查询,但是可以将它合并为一个吗?
提前致谢!
答案 0 :(得分:0)
如果你有一个UNIQUE KEY(userid,timestamp),那么你可以使用
INSERT IGNORE INTO ".$prefix."_active_users (userid,timestamp) VALUES (?,?)
IGNORE是关键词
但是,您可以保留当前代码。有2个查询也没有错。