【发布时间】:2013-02-21 20:43:33
【问题描述】:
我正在努力做到这一点:
$sql = mysql_query("SELECT COUNT(fk_player_id) count FROM wr_year WHERE fk_player_id=$currplayer AND year=2013");
$row = mysql_fetch_assoc($sql);
if($row['count'] == 0){
mysql_query("INSERT INTO wr_year (fk_player_id, year, points) VALUES ($currplayer, 2013, $points)");
} else {
mysql_query("UPDATE wr_year SET points=points+$points WHERE fk_player_id=$currplayer AND year=2013");
}
进入这个:
mysql_query("INSERT INTO wr_year (fk_player_id, year, points) VALUES ($currplayer, 2013, $points)
ON DUPLICATE KEY UPDATE points=points+$points");
但这行得通吗?如何确保它只在 fk_player_id 和 year 上检查 ON DUPLICATE,并且可以做到吗?
提前致谢 ;-)
【问题讨论】:
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。 -
你会用这个
WHERE fk_player_id=$currplayer做什么??
标签: php mysql query-optimization