检查行是否存在[重复]

问题描述 投票:0回答:2

我正在为我们的员工构建登录名,现在我正在为每个输入字段创建验证。如果我有一个名为 pages 的表,并且在该表中我有一个名为 title 的列字段。作为示例,我创建了一个虚拟标题我的新标题

我创建了一个函数,让我们的用户创建新页面,并且我希望能够检查该标题是否已存在于我们的数据库中。

例如,如果用户输入 My new title 并提交表单,那么他会收到一条包含以下文本的错误消息:

Sorry, your title already exists

我知道我在这里没有提供太多信息,但我是从头开始的。我知道如何检查数字是否相同,或者两个输入字段/数据库行是否彼此匹配。这可能很简单,但我真的想不通。

php mysql sql
2个回答
2
投票

您可以通过以下方式实现这一目标:

  1. 向列title
  2. 添加唯一约束
  3. 使用 INSERT ... ON DUPLICATE KEY UPDATE 语句
  4. 如果返回的结果多于现有的 0 个结果,则在插入该列值之前执行查询。例如:从 pages WHERE title = 'new_title';
  5. 中选择 *

0
投票

解决方案取决于您的验证站在哪一边

客户端:

我建议使用jquery validate,它有一个使用ajax调用进行验证的选项,ajax将调用的函数如下所示

服务器端:

我将创建一个函数来查询页面表,查找已发布的页面标题,如果查询没有返回结果,则可以安全地继续,否则标题存在,您可以显示错误

查询类似于

SELECT title FROM page WHERE title = $_POST['title']
© www.soinside.com 2019 - 2024. All rights reserved.