我已经提出了下面的post请求,这似乎工作正常。当我查看网络中的开发人员工具时,一切似乎都奏效,我可以看到每个参数都已发布。然而,当insert.php
执行没有被添加到数据库,我没有收到任何错误消息。我试图将图像保存到MySQL中的Blob中。发布请求数据没有被插入到mysql
POST请求
var description = $('#description').val();
var title = $('#title').val();
var fileInput = $("#image")[0];
var file = fileInput.files[0];
var dataResult = new FormData();
dataResult.append('image', file);
dataResult.append('desc', description);
dataResult.append('title', title);
dataResult.append('longitude', currentMarker.lng());
dataResult.append('latitude', currentMarker.lat());
$.ajax({
type: 'POST',
url: 'insert.php',
data: dataResult,
processData: false,
contentType: false,
success: function (answer) {
}
})
insert.php
include('config.php');
if (isset($_POST['title']) && isset($_POST['body']) && isset($_POST['longitude']) && isset($_POST['latitude'])){
$title = $_POST['title'];
$body = $_POST['body'];
$longitude = (float)$_POST['longitude'];
$latitude = (float)$_POST['latitude'];
$file = file_get_contents($_FILES['image']['name']);
$strSQL = $db->query("INSERT INTO camps (title, body, longitude, latitude, image) VALUES ('$title', '$body', '$longitude','$latitude', '$file')");
}
自卸
array(4) {
["desc"]=>
string(6) "teeest"
["title"]=>
string(11) "test"
["longitude"]=>
string(18) "-74.17870044708252"
["latitude"]=>
string(17) "40.73480350827126"
}
也许你可以把你的'$ db-> query'放入一个try catch块中,并捕获Exception(如果有的话)。你是否已经检查了Web服务器错误日志和/或MySQL错误日志?什么是查询的原始版本? – codedge
'var_dump''$ _POST'来检查您收到的内容。如果您使用的是Chrome,则可以使用Postman -rest客户端进行ajax请求。 – dipesh
在php开始标记之后,在开始处添加'error_reporting(E_ALL);'到您的'insert.php',然后重试并让我们知道您是否有任何错误。 –