Php 数组遍历期间的假阴性
我有一个查询,可以从名称中获取ID号: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
$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记录,那么您应该编写或查找一些检查常见拼写错误的代码。