使用PDO将对象条目插入数据库

时间:2014-09-18 13:51:23

标签: php mysql object pdo

情况:

我有一个通过AJAX传输到我的PHP文件的对象,该文件应该在我的数据库中插入一行或多行。

在PHP文件中,我使用json_decode使我的对象在PHP中工作

$insertDatesArray = json_decode($_REQUEST['insertDatesArray']);

当我输出这个Object时,我在PHP中得到它:

object(stdClass)#2 (4) {
  ["alterstufe"]=>
  array(3) {
   [0]=>    string(1) "1"
   [1]=>    string(1) "1"
   [2]=>    string(1) "1"
  }  
  ["sunday"]=>
  array(3) {
   [0]=>    string(10) "14.09.2014"
   [1]=>    string(10) "21.09.2014"
   [2]=>    string(10) "28.09.2014"
  }
  ["help1"]=>
  array(3) {
   [0]=>    string(1) "6"
   [1]=>    string(1) "7"
   [2]=>    string(1) "8"
  }  
["help2"]=>
  array(3) {
   [0]=>    string(1) "7"
   [1]=>    string(1) "8"
   [2]=>    string(1) "6"
  }
}

这是代码,它生成我的对象:

var date = new Array();
var alterstufen = new Array();
var helpperson1 = new Array();
var helpperson2 = new Array();
var elems2 = $('#plan tbody tr');
var count2 = elems2.length;
$('#plan tbody tr').each(function(){    
    alterstufen.push($('.pp-age').val());
    date.push($('#pp-service-date', this).val());
    helpperson1.push($('.selector-help1', this).val());
    helpperson2.push($('.selector-help2', this).val());
});
var days = new Object();
days.alterstufe = alterstufen;
days.sunday = date;
days.help1 = helpperson1;
days.help2 = helpperson2;
var insertDatesArray = JSON.stringify( days );

计划:

现在我应该拥有的是:

我需要通过PHP :: PDO将每一行(每个对象属性中有一个值)插入到我的数据库中 现在我坚持我可以为每个值设置变量。

我的代码现在看起来像这样:

foreach ($insertDatesArray as $obj => $val) {
   $alterstufe = $val->alterstufe;
   $date = $val->date;
}

问题:

我不知道,我如何从每个对象属性中获取值以将它们组合在一起并将数据插入到我的数据库中。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

$entriesCount = count($insertDatesArray->alterstufe);

for($i = 0; $i < $entriesCount; ++$i) {
    var_dump($insertDatesArray->alterstufe[$i]);
    var_dump($insertDatesArray->sunday[$i]);
    var_dump($insertDatesArray->help1[$i]);
    var_dump($insertDatesArray->help2[$i]);

    // execute your query here with the data above
}

但正如您问题下面的第一条评论告诉您,更改客户端部分可能更容易,更清晰。

所以我将JS部分改为:

var data = new Array();

$('#plan tbody tr').each(function(){    
    data.push({
        alterstufen: $('.pp-age').val()
        date: $('#pp-service-date', this).val(),
        help1: $('.selector-help1', this).val(),
        help2: $('.selector-help2', this).val()
    });
});

然后你会在服务器端得到一个不错的一体化软件包。