【发布时间】:2021-01-02 18:52:22
【问题描述】:
我正在尝试将从API 获取的数据保存在数据库中。事实上,我从 API 获得了我网站上销售的产品的销售数量,我想通过ajax 将它们保存在我的数据库中。问题是我在一般情况下仍然有很多 Javascript 问题。所以这就是我所做的。
我创建了第一个文件来使用 ajax 保存数据(我认为这肯定是问题所在,哈哈)。
//script.js
function saving_data()
{
$.ajax({
url:"fetch.php",
method:"POST",
data : data,
dataType : 'json',
success : function (stats) {
jQuery.each(stats, function(i, val) {
var action = 'action';
var id = val["id"];
var sales = val["quantite"];
$.ajax({
url:"save.php",
method:"POST",
data:{action:action, id:id, sales:sales}
});
});
},
error : function () {
alert("error");
}
});
};
saving_data();
setInterval(function(){
saving_data();
}, 5000);
然后我创建了第二个文件,允许我从我的数据库中获取产品。
//fetch.php
$pdo = Connexion::getPDO(); // a PDO instance
$sql = $pdo->query("SELECT * FROM products ORDER BY date DESC");
$beats = $sql->fetchAll(PDO::FETCH_ASSOC);
$stats = [];
foreach ($products as $key => $product) {
$salesstats = $api->sales(api-request);
$stats[$key] = [
"id" => $product["id"],
"quantity" => $salesstats["quantity"], //get from api
"amount" => $salesstats["amount"] // get from api
];
}
echo json_encode($stats);
最后我创建了一个 javascript 文件,它应该允许我将数据保存在我的数据库中。
//save.php
$pdo = Connexion::getPDO(); // a PDO instance
if(isset($_POST['action'])){
$bId = $_POST["id"];
$bSales = $_POST["sales"];
$update_query = "UPDATE products SET sales = '$bSales' WHERE id = '$bId'";
$pdo->query($update_query);
}
当然,它不起作用。数据库未更新。但我不知道出了什么问题。有人可以帮帮我吗?
谢谢。
【问题讨论】:
-
您粘贴了很多代码,包括服务器端和客户端,没有任何实际错误的指示以及可能出现的位置。你真的应该缩小问题的范围。
-
问题很简单,数据库没有更新。不显示错误。我在文章开头解释了它。我粘贴了代码,因为有时人们会来详细询问代码。
-
您甚至没有连接到 save.php 中的数据库,并且绝对没有错误处理或显示代码中的任何错误。所以,你需要先做一些调试。
-
我连接了。我只是没有放入,因为我在之前的代码中放入过一次。我只想知道,您是否在我的代码中看到错误?
-
我们怎么知道你故意省略了代码的某些部分而不是真正的错误?