请帮我pdo MySQL选择

时间:2019-02-22 14:17:02

标签: php mysql

我试图找到自己在做错的事情-我无法理解或找到关于它的一些信息。

简而言之,表中有3行。

listCommingFromJava.asScala.toList

当我执行验证请求时,该数据是否已经存在,但从头开始处理  (如何做相反的事情?)

例如,“发布”请求:login(me3),mail(me2@mail.ru),ip(127.0.0.1) 然后他会告诉我-从头开始,就是ip!我更改了IP,他通过邮件向我展示了,但没有从登录名中看到

我该如何解决-还是我做错了什么(在第三行中登录-在第二行中发送邮件,在第一行中输入IP-第一行中)如何做到这一点,以使所有内容都不以IP开头(即,而不是从头开始)

NullPointerException

当然,我有另一种选择-但我想以一种简单的方式来做!

  id login mail        ip 
   1 me    me@mail.ru  127.0.0.1
   2 me2   me2@mail.ru 4234234
   3 me3   me3@mail.ru 4234234

我一直在寻找示例-我没有找到信息,所以我认为这里有人可以告诉我前进的方向。如何将这三个请求变成1?


结果,谢谢大家!

最好的选择是分别检查登录名和单独检查电子邮件,现在我了解自己的愚蠢以及很长时间都找不到类似的东西。

当然,我可以一次检查所有内容并显示已经存在的信息,但是无法确定顺序。并通过单独的存在性测试,我们确切地知道我们拥有什么,并且确切地知道要显示什么信息。

1 个答案:

答案 0 :(得分:1)

这不是答案,只是一个很大的评论。

我仍然无法实现您的目标。但我觉得您想检查一下唯一性:登录名,电子邮件和IP。

您可以为此进行非常直接的实现。

https://www.db-fiddle.com/f/JB1EDnr8GBYsTU1z8dRDS/0

ALTER TABLE users ADD UNIQUE unique_login(login);
ALTER TABLE users ADD UNIQUE unique_ip(ip);
ALTER TABLE users ADD UNIQUE unique_email(email);

正如您在小提琴中看到的那样,MySql将为您返回正确的错误消息,您可以将其用于输出。

另一种猜测您到底在寻找什么的尝试,可能您不愿意elseif,而只是按照自己喜欢的顺序依次if一系列:

  if (empty($row)) {
        echo "All is well!";
  } else {
      if ($row['ip']==$ip) {
        $message .= "You have already registered - only one registration is allowed. \n";
      };
      if ($row['login']==$login) {
        $message .= "Sorry, username is already taken! \n";
      };
      if ($row['email']==$email) {
        $message .= "Sorry, the email id is already taken! \n";
      };

      echo $message;
  }