我有一个简单的数据库,用于存储YouTube视频的Url,标题和下载次数。我现在正在使用此基本查询来插入标题和网址:
$query = "INSERT INTO youtube (ID, Titel, Downloads, Url) VALUES (NULL, '".$title."', '1', '".$my_id."')";
$mysqli->query($query);
在“下载”列中,我目前只是插入1.
我的问题是如何检查数据库中是否已经存在该URL,如果确实如此,我想编辑该记录,以便在“下载”中添加1。
答案 0 :(得分:3)
INSERT INTO youtube VALUES (NULL, 'title', '1', 'id')
ON DUPLICATE KEY update Downloads = Downloads +1
请注意,您应该为所有数据库交互使用预准备语句。
以下是使用我的safemysql lib的代码
$sql = "INSERT INTO youtube VALUES (NULL, ?s, 1, ?s)
ON DUPLICATE KEY update Downloads = Downloads + 1";
$db->query($sql, $title, $my_id);
答案 1 :(得分:0)
MySQL在插入时提供了ON DUPLICATE子句:
INSERT INTO youtube VALUES (NULL, '".$title."', '1', '".$my_id."')"
ON DUPLICATE KEY UPDATE downloads = downloads + 1;
答案 2 :(得分:0)
您可以使用:
INSERT INTO youtube (Titel, Downloads, Url) VALUES ('$title', '1', '$url')
ON DUPLICATE KEY update Downloads = Downloads + 1
但您必须将url
列定义为UINQUE
或PRIMARY KEY
。
您可以使用:
ALTER TABLE youtube
ADD UNIQUE (Url)