PHP MYSQL JAVA从blob获取字节错误
我正在开发一个java应用程序,其中有一个数据库存储在某个网站托管服务器(000webhost)上,我编写了代码,以从数据库服务器(MySQL)获取作为网站托管的PHP文件中的数据。 以下是相同的代码: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
//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注入的一个小例子。这看起来像是你所允许的,但它远不止如此。我已经说过我会做什么