【问题标题】:PHP MySQL Check if row exists [duplicate]PHP MySQL检查行是否存在[重复]
【发布时间】:2014-03-15 16:17:02
【问题描述】:

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

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

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

我知道我在这里没有提供太多信息,但我在这方面是从零开始的。我知道如何检查一个数字是否相同,或者两个输入字段/数据库行是否相互不匹配。这可能是一件容易的事,但我真的想不通。

如果您对此有一个简单的解决方案,我将不胜感激。继续美好的一天:)

【问题讨论】:

  • 是的,可以。但就像我说的,我是从零开始的。我不太了解**INSERT** ... **ON DUPLICATE**

标签: php mysql sql


【解决方案1】:

您可以通过以下方式实现:

  1. 为列title添加唯一约束
  2. 使用 INSERT ... ON DUPLICATE KEY UPDATE 语句
  3. 如果返回的结果多于 0,则在插入该列值之前执行查询。比如:SELECT * FROM pages WHERE title = 'new_title';

【讨论】:

  • 是的 - 我已经想通了。但我会接受你的回答,让人们知道这个问题的解决方案:)
【解决方案2】:

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

客户端:

我建议使用jquery validate,它可以选择使用 ajax 调用进行验证,ajax 调用的函数如下所示

服务器端:

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

查询类似于

SELECT title FROM page WHERE title = $_POST['title']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2011-07-13
    • 2013-08-06
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    相关资源
    最近更新 更多