【问题标题】:Check if string contains 2 values检查字符串是否包含 2 个值
【发布时间】:2016-01-02 22:15:13
【问题描述】:

我有一个小问题,我需要解决。在我的数据库中,用户有名称表,字段如下:userID:1 / Name:firstname / Lastname:lastname。我在文件中有一个字符串,我需要验证,字符串是:“姓氏,名字”我如何验证,该字符串包含两个项目?

我正在尝试什么:

$fullname = $data[1];
            $showdata = $db->prepare("SELECT userID FROM users WHERE firstname LIKE '%$fullname%' AND lastname LIKE '%$fullname%'");
            $userioID = $rowas['userID'];
            $showdata->execute();
            $rowas= $showdata->fetch(PDO::FETCH_ASSOC);
            echo $userioID;

编辑

数据库:

文件

更具体地说,一个元素,即 Talandis,Justinas,在数据库中就像 2 个单元格。如何验证文件中的字符串同时包含名字和姓氏?

编辑 2

$fullname = $data[1];
            $showdata = $db->prepare("SELECT userID FROM users WHERE lastname + ',' + firstname LIKE '%$fullname%'");
            $showdata->execute();
            $rowas= $showdata->fetch(PDO::FETCH_ASSOC);
            $userioID = $rowas['userID'];
            echo $userioID;

最终编辑:

$showdata = $db->prepare("SELECT userID FROM users WHERE lastname + ', ' + firstname LIKE '%$fullname%'"); - 增加了空间 - 它正在工作。

【问题讨论】:

  • 你用过正则表达式吗?
  • 你能说得更具体些吗?
  • 您标记了两个数据库引擎。请删除不合适的。
  • 为什么不只是$fullname===$lastname.", ".$firstname
  • @nonchip 请告诉我如何使用它。

标签: php mysql sql ms-access pdo


【解决方案1】:

假设文件中的所有字符串都相同,并且正如您发布的那样,您可以获得所需的变量:

$parts=explode(";",$filestring);
$names=explode(",",$parts[1]);
$lastname=$names[0];
$firstname=$names[1];

然后你使用你的 SQL:

$showdata = $db->prepare("SELECT userID FROM users WHERE firstname LIKE '%$firstname%' AND lastname LIKE '%$lastname%'")

【讨论】:

  • 顺便说一句,您注意到您没有在那里转义参数吗?哦,我猜你错过了另一个爆炸。
【解决方案2】:

假设 $fullname 包含类似 "Lastname, firstname"preg_match("/([a-zA-Z]), ([a-zA-Z])/" 的字符串, $fullname,$result);

那么 $result 应该是一个数组:
[
"姓,名",
"姓氏",
“名字”
]

很抱歉格式问题,但我正在通过手机接听。

顺便说一句,你可以改进它,比如 jean-francois 等组合名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 2012-05-06
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多