Php 数组遍历期间的假阴性

Php 数组遍历期间的假阴性,php,mysql,Php,Mysql,我有一个查询,可以从名称中获取ID号: $stmt1 = $db->prepare(" SELECT P_ID FROM personal WHERE personal.FirstName=:firstname AND personal.LastName=:lastname "); 但是这些名字是以电子表格的形式发给我的,所以我需要对照数据库中的实际内容进行检查 我这样导入名称: $firstnames = file("firstnames.txt"); $last

我有一个查询,可以从名称中获取ID号:

$stmt1 = $db->prepare("
SELECT P_ID 
  FROM personal  
 WHERE personal.FirstName=:firstname 
   AND personal.LastName=:lastname 
");
但是这些名字是以电子表格的形式发给我的,所以我需要对照数据库中的实际内容进行检查

我这样导入名称:

$firstnames = file("firstnames.txt");
$lastnames = file("lastnames.txt");
我这样检查它们:

// Identify incorrect last names
    if ($stmt1->rowCount() > 0) {
            $check = $stmt1->fetch(PDO::FETCH_ASSOC);
            $row = $check['lastname'];
            // Nothing to do if last name already exists
          } 
      else {
    echo "The name ".$lastnames[$i]." is not in the DB.";
       }


// Identify incorrect first names
    if ($stmt1->rowCount() > 0) {
            $check = $stmt1->fetch(PDO::FETCH_ASSOC);
            $row = $check['firstname'];
            // Nothing to do if first name already exists
        } 
      else 
       {
    echo "The name ".$firstnames[$i]." is not in the DB.";
       }
如果姓氏不正确,相应的名字也会被标记。 类似地,如果名字不正确,也会标记相应的姓氏

以下是示例输入数据:

Jim 
Jack 
Paul 
Rob
--------------
Smith
Jones
Aznar
Diaz

假设它实际上是DB中的“Azanar”。我收到消息说“阿斯纳尔不在DB里”和“保罗不在DB里”。然而“保罗”实际上是正确的,所以不应该被标记

您应该更改您准备的声明。您专门查询的记录的名字和姓氏都与您提供的匹配。我认为最简单的方法是有两个查询,第一个查询名字,第二个查询姓氏。

这个问题对你来说有意义吗?是的。你有什么问题吗?所以,我想你想改变一下,或者?那不行。我真的运行了它。您的想法将返回所有Paul、Daves等,其姓氏不在我使用的电子表格数据中。我想要名字和姓氏的组合。你刚才说你想要,不管姓氏是否匹配,都会返回名字(反之亦然)。但是会有很多Pauls、Daves和Marias。我只想检查任何与LastName Aznar链接的FirstName Paul。如果LastName Aznar不在数据库中,就像您在示例中提到的那样,您的应用程序无法知道您在寻找哪个Paul。你可以说“是的,有一些保罗”或者“没有保罗·阿斯纳尔”。如果您想特别查找“Paul Azanar”记录,而不是其他Paul记录,那么您应该编写或查找一些检查常见拼写错误的代码。