首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较从sql server数据库问题检索到的php中的字符串

比较从sql server数据库问题检索到的php中的字符串
EN

Stack Overflow用户
提问于 2019-06-30 20:14:55
回答 1查看 146关注 0票数 0

我使用的是Server数据库,其中我的一个表有一个列类型为VARCHAR(MAX)。在本专栏中,我将存储BASE64字符串。

基本上,应用程序的流程是:

  1. 获取指纹数据。
  2. 将其编码为BASE64字符串。
  3. 通过检查它的存在性,使用PHP将其存储到sql服务器数据库 3a。从数据库中检索所有指纹 3b。使用从数据库接收的所有指纹检查要插入的指纹数据。 3c。如果任何指纹与其匹配,则如果任何指纹与其不匹配,则返回false,返回true。
  4. 如果返回值为真,则插入带有以下查询的指纹,如果为false,则显示错误。 插入EMPTABLE ( Finger_Data )值(转换(VARCHAR(最大),$Finger_Data ))

为了在第三步获取和检查指纹,使用以下代码。

代码语言:javascript
运行
复制
 $sqlString = "SELECT  CAST( Finger_Data AS VARCHAR(MAX)) AS FINGER FROM 
 EMPTABLE ";

 $stmt = $this->conn->prepare($sqlString);
            $stmt->execute();
            $data = $stmt->fetchAll();

  if ($stmt->rowCount() > 0) {

     if ($data) {
         foreach ($data as $row) {

                        $found = false;

                        if ($Finger_Data === $row['FINGER']){

                            echo "\n >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
                            Duplicate found <<<<<<<<<<<<<<<< \
                            $found = true;

                        }

                        if($found){
                            echo "\n >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
                            Implementing found <<<<<<<<<<<<<<<< \
                        }

         }

    }

  }

我的问题是,我根本无法比较这两个字符串。当我打印这两个变量时,我看到它们等于80 %,而字符串的其他部分不匹配。但是,当我直接签入数据库时,数据显示是正确的,这意味着用PHP读取或从实际情况中写入。

EN

回答 1

Stack Overflow用户

发布于 2020-09-22 14:05:06

您不能在SQL中进行比较,因为只有当您一次又一次地拥有相同的指纹图像时,才能得到匹配。但是在现实中,当你得到两次指纹时,两幅图像都会有不同的位置变化、角度变化和扫描质量。因此字符串比较是不可能的。

所有扫描仪都提供了用于捕获指纹和比较指纹的SDK (1:1),您可以使用它来开发桌面应用程序。如果需要比较服务器上扫描的图像,则需要实现自己的自动手指识别算法,或者必须使用第三方服务,如

  1. 凸轮
  2. M2Sys
  3. 神经技术
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56827756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档