javascript - PHP 通过 Ajax 为来自 Javascript "JSON.stringify"的对象保存在 MySQL 中?

标签 javascript php mysql ajax json

我有一个对象从 Javascript 传递到 PHP(通过 AJAX):

var jsObject = {
    "name": "Michael Divo",
    "age": 27,
    "country": "United States"
};

jsObject_json = JSON.stringify( jsObject );

$.ajax({
    type: "POST",
    dataType: 'json',
    url: "http://www.example.com/myserver.php",
    data: { mydata: jsObject_json },
}) ...

在 myserver.php 中:

$json = json_decode($_POST["mydata"], true);

然后如果我从这个 PHP 端将 $json 保存到 MySQL 中,它被保存为:

Array

.. 在数据库中,作为字符串的“数组”。


那么我该如何正确地将这个 JSON 保存到 MySQL 中呢?(以便我以后可以将它作为 JSON 检索回来并读取。)

最佳答案

如果您只想将其作为 JSON 拉回,则不要通过 json_decode 运行它。将其保留为字符串。

然而,最明智的系统将具有一个数据库结构,允许单独处理 JSON 提交中的每个字段。然后您将访问每个字段并将其添加到 INSERT 查询中它自己的列中。然后,您可以对“给我所有数据”之外的数据执行查询(例如,WHERE country = 'United States')。

$preparedStatement = $db->prepare('INSERT INTO data (name, age, country) VALUES (:name, :age, :country)');
$preparedStatement->execute(json_decode($_POST["mydata"], true));

关于javascript - PHP 通过 Ajax 为来自 Javascript "JSON.stringify"的对象保存在 MySQL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184293/

相关文章:

PHP服务器端相关字段验证

mysql - 编写一条 SQL 语句进行速度跟踪

javascript - 如何在index.html文件中导入脚本的src

javascript - 在 Laravel 5 中使用 jQuery 删除父项时出错

从网站发布数据时 PHP $get 为空,但不是手动 url

php - 隔离多维数组中的单个列

javascript - "window.functionname&&functionname()"是做什么的?

javascript - 使用 html 链接打开 javascript 模式

javascript - 循环遍历数组并删除项目,而不中断 for 循环

java - MySQL - 希伯来字符成为数据库中的问号