如何将 localstorage 数组存储到 MySQL 数据库中?
Posted
技术标签:
【中文标题】如何将 localstorage 数组存储到 MySQL 数据库中?【英文标题】:How To Store localstorage Array Into MySQL Database? 【发布时间】:2012-04-28 21:17:11 【问题描述】:我目前正在使用 localstorage 来存储当前用户访问过的页面:
<?php
//start the session
session_start();
//set $username as the current logged in user
$username=$_SESSION["Username"];
?>
JQuery:
var journey = JSON.parse(localStorage.getItem('journey'))||[];
journey.push(location.protocol +
'//' + location.host + location.pathname);
localStorage.setItem('journey', JSON.stringify(journey));
目前这是一个临时存储,但我也想让他们选择保存他们的旅程。
如何将单个 URL 与用户 ID(已存储在数据库中)一起保存到 mysql 数据库中?例如表名“Journey”,列“URL”和“UserID”。
【问题讨论】:
【参考方案1】:MySQL 旅程表:
CREATE TABLE journey (
userId INT NOT NULL,
journeyUrl VARCHAR(200) NOT NULL,
PRIMARY KEY( userId, journeyUrl ),
FOREIGN KEY( userId ) REFERENCES userTable( userId )
);
插入旅程查询:
$insert_query = "INSERT INTO journey ( userId, journeyUrl ) VALUES ( $userId , '$journeyUrl' );";
如果已经存在,则更新旅程查询:
$update_query = "UPDATE journey SET journeyUrl = '$journeyUrl' WHERE userId = $userId;";
您的 php 脚本将在结果为布尔值的末尾回显一个结果。 True 表示保存成功,False 表示保存失败:
echo json_encode($result);
您将拥有一个 php 脚本,该脚本根据表中是否已经存在引用用户的记录来执行这些查询。
这样的 jQuery AJAX 函数会调用脚本并保存旅程:
$.ajax(
type: "POST",
url: "savejourney.php",
data: id : userid, url : journeyUrl ,
dataType: "json",
success: function(data)
if(data)
alert("Journey saved sucessfully!");
);
【讨论】:
PHP中的'$journeyUrl'变量从何而来? 它可以与 AJAX 查询一起传递,我忘了添加它,但现在已对其进行编辑以反映这一点。【参考方案2】:为此,您需要对服务器进行 Ajax 调用。您需要发出 Ajax 请求,您可以使用 Jquery 来完成。然后,您需要一种服务器端语言(例如 php)来处理请求并插入到数据库中。
有一个执行 AJAX 调用 php 文件以插入数据库 here 的示例。请注意,这不是您在生产环境中执行的方式。然而,这是一个很好的教程来理解这个过程。
编辑
根据您在下面的评论,我将进一步解释。上面的例子确实做了你想做的事。目前,您的数据位于“客户端”机器上的 javascript 中。您想将其传输到 mysql 数据库。
为此,您将使用 JQuery 或 Javascript 发送数据。在示例中,他们在位于 html 部分的 <script> </script>
标记中使用 Javascript。此javascript代码用于将数据发送到php文件,该文件在此行$q=$_GET["q"];
接收它,然后php函数将此数据插入数据库。
在示例中,他们使用GET
来实现此目的。您可能需要执行POST
request。值得您花时间查找difference between the two。
【讨论】:
本教程很有用,但它只展示了如何使用 php/mysql 将数据发送到 html 页面,但是我需要以另一种方式发送:html/jquery 到 php/mysql。 @user1199649 我已更新我的答案以反映您的评论。以上是关于如何将 localstorage 数组存储到 MySQL 数据库中?的主要内容,如果未能解决你的问题,请参考以下文章
localStorage存储对象,sessionStorage存储数组对象
如何在 reactjs 的 localStorage 键上的单个数组中附加用户输入?
如何将数组从localStorage映射到reactJS中的表?