目前我正在运行一个网站,它抓取一些第三方API数据来抓取货币价格,将其保存为“msg.data.closing_price.value”,然后允许我将其与本地价格中的其他产品进行比较创建这样的字符串:
$('#dollar-price').html('Ð' +Math.round10 (1/msg.data.closing_price.value, -2));
我正在寻找一种方法能够获取上面jQuery的输出添加一个时间戳并将其扔进数据库,以便我以后可以添加一些历史数据,但我还没有成功找到一种方法,至少一种我理解的方法
作为一个真正的新开发者,他甚至在第一时间让jQuery陷入困境,我完全失去了可能会朝着正确的方向发展!
答案 0 :(得分:1)
你不能在jQuery中做到这一点 - 至少不是这样。你可以做的是获取值并将其发送到可能做你想做的PHP端脚本:
$.post( "/path/to/script", { price: msg.data.closing_price.value } );
并在脚本中 - 经过一些合适的输入检查后 -
$price = $_POST['price'];
if (is_numeric($price)) {
// some range checks maybe
// Insert into database proper. PDO recommended.
insertRows($table, array(
'price' => (float)$price;
));
}
数据库可以使用适当的数据类型和默认值(DEFAULT CURRENT_TIMESTAMP
)自动添加时间戳,或者您可以使用time()
或任何合适的函数自行添加时间戳。注意时区,永远不要相信客户端发送的数据。
你真正应该做的是检查第三方API并查看它是如何被调用的以及它返回的内容。您可以使用Firebug或Chrome WebDev执行此操作。假设这是对/othersite/pricelist/productCode
的简单POST调用,那么您需要做的就是在服务器上使用cURL(或者如果是GET调用,甚至可能是file_get_contents($url);
)重新实现调用;客户不需要进入此。使用 cron作业,您可以定期保存数据而无需用户干预,使用RRD
中的PHP绘制图表,依此类推。