Я использую базу данных SQL Server, где одна из моих таблиц имеет тип столбца VARCHAR (MAX) . В этом столбце я храню строку BASE64.
В основном поток приложения:
- получить данные отпечатка пальца.
- закодировать его в строку BASE64.
Сохраните его в базе данных сервера SQL, используя PHP, проверив его существование
3a. Получить все отпечатки пальцев из базы данных
3b. отметьте данные для вставки отпечатков пальцев со всеми отпечатками, полученными из базы данных
3c. если с ним совпадает какой-либо отпечаток, вернуть false
если какой-либо отпечаток пальца не совпадает с ним, вернуть true
, если возвращаемое значение равно true, затем вставить отпечаток пальца с помощью следующего запроса, если false, то показать ошибку.
INSERT INTO EMPTABLE ( Finger_Data ) values ( CONVERT( VARCHAR(MAX) ,
$Finger_Data ) )
Чтобы получить и проверить отпечатки пальцев на шаге № 3, используется следующий код.
$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 или запись из вопросов.