我在将一些值发送到 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/