我使用的是Server数据库,其中我的一个表有一个列类型为VARCHAR(MAX)。在本专栏中,我将存储BASE64字符串。
基本上,应用程序的流程是:
为了在第三步获取和检查指纹,使用以下代码。
$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读取或从实际情况中写入。
发布于 2020-09-22 14:05:06
您不能在SQL中进行比较,因为只有当您一次又一次地拥有相同的指纹图像时,才能得到匹配。但是在现实中,当你得到两次指纹时,两幅图像都会有不同的位置变化、角度变化和扫描质量。因此字符串比较是不可能的。
所有扫描仪都提供了用于捕获指纹和比较指纹的SDK (1:1),您可以使用它来开发桌面应用程序。如果需要比较服务器上扫描的图像,则需要实现自己的自动手指识别算法,或者必须使用第三方服务,如
https://stackoverflow.com/questions/56827756
复制相似问题