【问题标题】:Javascript Array(With objects inside) to PHP to insert into a databaseJavascript 数组(内部包含对象)到 PHP 以插入数据库
【发布时间】:2017-10-24 18:22:42
【问题描述】:

对,我有一个数组,里面有对象,它看起来像这样:

我希望通过对我的 php 文件的 AJAX 调用将其插入到我的数据库中。

我在数组上尝试过 JSON.stringfy,我在数据库中得到的结果是

[{"task":"Tyres","notes":"Hello","completed":"True"},{"task":"Tyres","notes":"所有四个轮胎都需要做" ,"completed":"True"},{"task":"Tyres","notes":"所有四个轮胎都需要做","completed":"True"},{"task":"Tyres"," notes":"所有四个轮胎都需要做","completed":"True"}]

双引号已替换为 " 我知道这是引号的符号,但我想要引号。

我也尝试发送数组,但数据库返回空白。

有没有办法解决这个问题?

【问题讨论】:

  • 我不明白你的要求。您只是想将字符串存储在数据库中吗?
  • 我不明白这个问题,您将 json 作为字符串存储在数据库中,然后您可以在需要时将其提供给客户端。你想做什么?

标签: javascript php mysql arrays json


【解决方案1】:

为您的数据库插入使用 PHP 数据对象 (PDO)。它允许您制作准备好的语句以防止注入攻击。你不需要像“safeString”这样的函数,并且可以保证你输入的就是你输出的。

这是它的外观示例。你可以看到参数是命名的,我们在一个数组中传递值,名称作为键。

$sql = "UPDATE mutable SET json=:json WHERE id=:id";
$statement = $dbh->prepare($sql);
$statement->execute([":json" => $json, ":id" => $id]);
$result = $statement->fetchAll(PDO::FETCH_ASSOC);

【讨论】:

    【解决方案2】:

    您需要使用PHP json_decode 转换回对象。但请注意,它只会转换回 StdClass。您需要阅读并处理适当的转换。例如:

    $carChecklist = json_decode($_POST['checklist']);
    echo $carChecklist[0]->tyres;
    

    应该返回“轮胎”;

    【讨论】:

      猜你喜欢
      • 2021-04-13
      • 2014-07-16
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 2012-05-19
      • 2014-03-27
      • 1970-01-01
      相关资源
      最近更新 更多