如何将 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 部分的 &lt;script&gt; &lt;/script&gt; 标记中使用 Javascript。此javascript代码用于将数据发送到php文件,该文件在此行$q=$_GET["q"];接收它,然后php函数将此数据插入数据库。

在示例中,他们使用GET 来实现此目的。您可能需要执行POSTrequest。值得您花时间查找difference between the two。

【讨论】:

本教程很有用,但它只展示了如何使用 php/mysql 将数据发送到 html 页面,但是我需要以另一种方式发送:html/jquery 到 php/mysql。 @user1199649 我已更新我的答案以反映您的评论。

以上是关于如何将 localstorage 数组存储到 MySQL 数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

localStorage存储对象,sessionStorage存储数组对象

如何在 reactjs 的 localStorage 键上的单个数组中附加用户输入?

如何将数组从localStorage映射到reactJS中的表?

localstorage json行如何访问每一行及其各个元素

localStorage存储数组或者对象的问题总结

vue中操作localstorage