php - Javascript 数组 -> PHP 对象 -> mysql 数据库

标签 php mysql arrays foreach json

我在将一些值发送到 mysql 数据库之前在客户端存储它们。 这就是我所做的。

我创建了一个名为“script”的 JavaScript 数组,并使用此函数在客户端 session 期间添加了一些行:

var script = [];

function storestat(a,b,c,d){ script.push({Idcat: a, Idquest: b, Score: c, Equipe: d}); }

然后我像这样使用ajax发送这些数据

function statquest(){
var postArray = JSON.stringify(script);
$.ajax({
url: 'statquest.php',
type: 'POST',
data: {data: postArray},
cache: false,
success: function(output){
dit = output;
},
error: function (request, status, error) {
}
});
}

在 statquest.php 中,我获取数据字符串并像这样解码它:

$myarray = json_decode($_POST['data']);

这是我使用 var_dump 显示对象时看到的内容

array(2) { [0]=> object(stdClass)#3 (4) { ["Idcat"]=> string(1) "2" ["Idquest"]=> string(1) "4" ["Score"]=> int(3) ["Equipe"]=> int(5) } [1]=> object(stdClass)#4 (4) { ["Idcat"]=> string(1) "1" ["Idquest"]=> string(1) "6" ["Score"]=> int(3) ["Equipe"]=> int(2) } }

我想将此 json 对象(所有行)插入到 mysql 数据库中,其字段的命名类似于对象中的名称:Idcat、Idquest、Score 和 Equipe

我尝试了类似的方法,但不起作用

$sql = "INSERT INTO ".$mydatabase." (`Idcat`, `Idquest`, `Score`, `Equipe`) VALUES (:Idcat,:Idquest,:Score,:Equipe)";
$q=$pdo->prepare($sql);
foreach($myarray as $row=>$value){
 $q->bindValue(":".$row,$value);
}
$q->execute();

我有这个错误:

Catchable fatal error: Object of class stdClass could not be converted to string

知道有人吗?谢谢

最佳答案

您可以使用 json_decode 的第二个参数将 json 数据转换为 php 数组。

$myarray = json_decode($_POST['data'], true);

$myarray 现在将是常规 php 数组,并且可以与 foreach 一起使用来执行其余操作。

关于php - Javascript 数组 -> PHP 对象 -> mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23888621/

相关文章:

Javascript如何找到数组中最大的数字并记录位置

javascript - 联系表 7 带自动填充字段的条件字段

php - html_entity_decode 也会替换吗?如果不行怎么换?

php - 休息;与继续;与返回;

php - ZF2 表单验证 - 不重叠的日期和时间

php - 删除重复条目

mysql - Group BY 子查询返回多于 1 行

java - 数组不打印或进入数组?

从另一个版本导入数据库时​​mysql出错

PHP explode array 然后遍历值并输出到变量