标题听起来很混乱,所以我先详细说明。我有一个网站,除其他功能外,该网站还允许用户从手机上载图片,并将其上传到MySQL数据库,并以blob格式存储,效果很好。我还有一个运行AJAX功能的按钮,该功能允许用户从所说的MySQL数据库中导入信息,然后将其返回到相同的HTML字段(继续它们离开的地方)。除了用于图片的“文件” HTML输入字段类型之外,此AJAX函数适用于所有内容。
要将文件数据输入MySQL,我使用addslashes(file_get_contents($image));
,我猜我必须撤消才能将其放回文件输入字段。如果是这种情况,我不知道该怎么做。我的猜测是,文件数据以一种格式存储在HTML输入字段类型中,而以另一种格式存储在MySQL中,但是我什至不确定这种情况,更不用说如何解决了。
如果有帮助的话,这里有很多。
HTML / AJAX:
<button type="button" id = 'ajaxButton' onClick = 'imAnAjaxFunction()';>TEST</button>
<label for="Image1"> Picture 01: </label>
<input type="file" id="Image1" name="Image1" value="Image1"
<script>
function imAnAjaxFunction()
{
var val1 = $('#Serial').val(); //
var request = $.ajax({
url: 'import.php',
type: 'get',
data: { Serial: val1 }, //
dataType: 'html'
});
request.done( function ( data ) {
//alert(data);
});
request.fail( function ( jqXHR, textStatus) {
console.log( 'Sorry: ' + textStatus );
});
var val1 = $('#Serial').val(); //
$.ajax
({
url: 'import.php',
type: 'get',
dataType: 'JSON',
data: { Serial: val1 }, //
success: function(response)
{
var len = response.length;
for(var i=0; i<len; i++)
{
document.getElementById('DateSet').value = response[i].DateSet;
document.getElementById('JobName').value = response[i].JobName;
document.getElementById('Image1').value = response[i].Image1;
}
}
})
}
</script>
insert.php大多数我不认为是相关事件
$image = $_FILES['Image1']['tmp_name'];
$imagetmp=addslashes(file_get_contents($image));
import.php
<?php
ob_start();
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM setcrewreport WHERE Serial = '$_GET[Serial]'";
$result = $conn->query($sql); //query
if ($result->num_rows > 0)
{
// output data of each row
while($row = $result->fetch_assoc())
{
$Serial = $row['Serial'];
$DateSet = $row['DateSet'];
$JobName = $row['JobName'];
$Image1 = $row['Image1'];
$return_arr[] = array("Serial" => $Serial,
"DateSet" => $DateSet,
"JobName" => $JobName,
"Image1" => $Image1);
}
ob_end_clean();
// Encoding array in JSON format
echo json_encode($return_arr);
}
else
{
echo "0 results";
}
$conn->close();
?>
这与参数化SQL语句有多近?
$sql = $mysqli->prepare("SELECT * FROM setcrewreport WHERE Serial = ?");
$sql ->bind_param("si", '$_GET[Serial]');
答案 0 :(得分:0)
我最初的目标是不可能的,所以我要走另一条路。
SQL语句的参数化如下:
$sql = $conn->prepare("SELECT * FROM setcrewreport WHERE Serial = ?");
$sql->bind_param("s", $_GET['Serial']);
$sql->execute();