我目前有一个html表单向我的数据库提交数据。用户使用它提交名称和URL,它将存储到我的表中。我想要实现的是当用户在文本字段中输入名称以及url字段中的url时,我想搜索我的数据库以查看是否已存在具有该名称的条目。如果是这样,我希望它不要将条目添加到数据库。
这是我目前设置的用于提交输入数据库的当前数据。
$title=$_POST['title'];
$url=$_POST['url'];
$query = "INSERT INTO images VALUES ('$title','$url')";
mysql_query($query) or die('Error, insert query failed');
我仍然是相当新的PHP,所以任何有关如何实现这一点的帮助将不胜感激!谢谢! :)
答案 0 :(得分:4)
如果您将数据库中的标题设置为unique
,则可以使用:
INSERT INTO images SET
title = '$title',
url = '$url'
ON DUPLICATE KEY UPDATE
url = '$url'
这将插入一个新行,如果该特定标题已存在于数据库更新其URL中。
答案 1 :(得分:1)
最简单,最快捷的方法是将SQL更改为此(或执行相同工作的其他内容):
INSERT INTO images
SELECT '$title',
'$url'
FROM DUAL
WHERE NOT EXISTS
(
SELECT *
FROM images
WHERE title = '$title'
AND url = '$url'
)
然后,您可以使用mysql_num_rows
,mysql_insert_id
或类似内容来确定是否插入了一行。
答案 2 :(得分:0)
快速/简单的解决方案是首先进行选择,然后如果没有返回记录,则进行插入。
**注意确保将所有输入转义到数据库以减少sql注入
根据您希望页面的负载,您可以转到另一条路径并创建一个存储过程,检查是否已有项目,然后在需要时插入。进入存储过程路由您只需拨打一个电话到您的数据库。