PHP MYSQL JAVA从blob获取字节错误

PHP MYSQL JAVA从blob获取字节错误,java,php,mysql,fingerprint,Java,Php,Mysql,Fingerprint,我正在开发一个java应用程序,其中有一个数据库存储在某个网站托管服务器(000webhost)上,我编写了代码,以从数据库服务器(MySQL)获取作为网站托管的PHP文件中的数据。 以下是相同的代码: //http://mahaweb.ml/java.php <?php require "connect.php"; $db = $_POST["db"]; mysqli_select_db($con,$db); $mysql_qry = $_POST["query"]; $resul

我正在开发一个java应用程序,其中有一个数据库存储在某个网站托管服务器(000webhost)上,我编写了代码,以从数据库服务器(MySQL)获取作为网站托管的PHP文件中的数据。 以下是相同的代码:

//http://mahaweb.ml/java.php
<?php
require "connect.php";
$db = $_POST["db"];
mysqli_select_db($con,$db);
$mysql_qry = $_POST["query"];   
$result = mysqli_query($con,$mysql_qry);    
if(mysqli_num_rows($result) > 0){
    while($row=mysqli_fetch_row($result)){                  // for each row in results
        foreach($row as $value){                           // for each column in row
                echo $value.'|';
        }   
    }
}
else
    echo 'null';
?>
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/dlap_application",user,pass);
        PreparedStatement ps = con.prepareStatement("select fingerscan from login where empID like 'MH1200001'");            
        ResultSet rs = ps.executeQuery();
        while(rs.next())          
            ISOTemplate = rs.getBytes("fingerscan");            
        ps.close();
        rs.close();
        con.close();
        int ret = mfs100.AutoCapture(data, timeout,  false, false);
        if(ret == 0){
            int score = 0;
            score = mfs100.MatchISO(data.ISOTemplate(), ISOTemplate);                
            System.out.println("Score:"+score);
            if(score > 14000){
            Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Success:"+score, ButtonType.OK);
            alert.show();
            }else if (score >= 0 && score < 14000) {
                Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Failure:"+score, ButtonType.OK);
                alert.show();
            }   
        }
        else{
        Alert alert = new Alert(Alert.AlertType.INFORMATION, "Return Code:"+ret+" "+mfs100.GetLastError(), ButtonType.OK);
        alert.show();
        }
我使用包含字节格式指纹值的blob列将指纹存储在数据库中。 当我使用jdbc connector从数据库获取数据并将该数据与指纹匹配时,它成功匹配,代码如下:

//http://mahaweb.ml/java.php
<?php
require "connect.php";
$db = $_POST["db"];
mysqli_select_db($con,$db);
$mysql_qry = $_POST["query"];   
$result = mysqli_query($con,$mysql_qry);    
if(mysqli_num_rows($result) > 0){
    while($row=mysqli_fetch_row($result)){                  // for each row in results
        foreach($row as $value){                           // for each column in row
                echo $value.'|';
        }   
    }
}
else
    echo 'null';
?>
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/dlap_application",user,pass);
        PreparedStatement ps = con.prepareStatement("select fingerscan from login where empID like 'MH1200001'");            
        ResultSet rs = ps.executeQuery();
        while(rs.next())          
            ISOTemplate = rs.getBytes("fingerscan");            
        ps.close();
        rs.close();
        con.close();
        int ret = mfs100.AutoCapture(data, timeout,  false, false);
        if(ret == 0){
            int score = 0;
            score = mfs100.MatchISO(data.ISOTemplate(), ISOTemplate);                
            System.out.println("Score:"+score);
            if(score > 14000){
            Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Success:"+score, ButtonType.OK);
            alert.show();
            }else if (score >= 0 && score < 14000) {
                Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Failure:"+score, ButtonType.OK);
                alert.show();
            }   
        }
        else{
        Alert alert = new Alert(Alert.AlertType.INFORMATION, "Return Code:"+ret+" "+mfs100.GetLastError(), ButtonType.OK);
        alert.show();
        }
Connection con=(Connection)DriverManager.getConnection(“jdbc:mysql://localhost:3306/dlap_application“,用户,通行证);
PreparedStatement ps=con.prepareStatement(“从empID类似“MH1200001”的登录名中选择fingerscan”);
结果集rs=ps.executeQuery();
while(rs.next())
等模板=rs.getBytes(“fingerscan”);
ps.close();
rs.close();
con.close();
int ret=mfs100.自动捕获(数据、超时、假、假);
如果(ret==0){
智力得分=0;
分数=mfs100.MatchISO(data.ISOTemplate(),ISOTemplate);
System.out.println(“分数:+Score”);
如果(分数>14000){
警报警报=新警报(Alert.AlertType.CONFIRMATION,“Success:+score,ButtonType.OK);
alert.show();
}否则如果(分数>=0和分数<14000){
Alert Alert=新警报(Alert.AlertType.CONFIRMATION,“Failure:+score,ButtonType.OK);
alert.show();
}   
}
否则{
警报警报=新警报(Alert.AlertType.INFORMATION,“返回代码:”+ret+“”+mfs100.GetLastError(),ButtonType.OK);
alert.show();
}
但当我使用PHP代码从数据库中获取数据时,它以字符串格式获取数据。 我正在将该字符串数据转换为字节,并尝试将其与新的指纹数据进行匹配,但没有获得任何成功,因为数据在字符串到字节的转换过程中丢失。
那么,如何使用PHP以字节格式从数据库中获取数据而不丢失数据呢?

您得到的实际错误是什么?是否存在异常/堆栈跟踪?只是输出不好吗?输出是什么?对不起,请检查编辑!!首先,如果您允许用户发布整个查询,那么您的PHP MySQL交互是非常不安全的。如果他们发布删除或删除,会发生什么?其次,你应该存储一个指向图像的URL,而不是存储BLOB(效率极低)。你熟悉SQL注入吗?我讨厌人们说“我以后再添加安全性…”或“安全性现在不重要…”或“忽略安全风险…”。如果你第一次没有时间做正确的事情,你什么时候能抽出时间来添加呢?如果我的查询是
SELECT*fromtable怎么办;升降台?这是SQL注入的一个小例子。这看起来像是你所允许的,但它远不止如此。我已经说过我会做什么你会得到什么样的实际错误?是否存在异常/堆栈跟踪?只是输出不好吗?输出是什么?对不起,请检查编辑!!首先,如果您允许用户发布整个查询,那么您的PHP MySQL交互是非常不安全的。如果他们发布删除或删除,会发生什么?其次,你应该存储一个指向图像的URL,而不是存储BLOB(效率极低)。你熟悉SQL注入吗?我讨厌人们说“我以后再添加安全性…”或“安全性现在不重要…”或“忽略安全风险…”。如果你第一次没有时间做正确的事情,你什么时候能抽出时间来添加呢?如果我的查询是
SELECT*fromtable怎么办;升降台?这是SQL注入的一个小例子。这看起来像是你所允许的,但它远不止如此。我已经说过我会做什么