【发布时间】:2013-02-03 14:06:27
【问题描述】:
我在徘徊是否可以先 SELECT 并且如果不是真的 INSERT 在使用 mysqli 的同一查询中插入 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 个查询,但是否可以将其合并为一个?
提前致谢!
【问题讨论】:
-
table schema of "$prefix."_active_users。为什么要针对用户 ID 插入时间戳? -
它用于统计...活跃的独立用户公关。天。表架构:userid int(11) NO MUL NULL timestamp timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
-
令人困惑...看不懂。
-
调用存储过程怎么样??
标签: php mysqli query-optimization