为什么我在数据库中保存数据时有NULL

时间:2016-08-12 02:46:37

标签: php sql-server-2008 codeigniter-3

我尝试使用foreach

进行保存

这是我从表格中得到的内容

  Array
(
    [mulai] => 2016-08-28
    [akhir] => 2016-08-31
    [keterangan] => remarks
    [nip] => Array
        (
            [0] => 1004384
            [1] => 1602744
            [2] => 1501039
        )

)

然后这是我的保存查询。

$jumlahrange = $this->db->query("SELECT DATEDIFF(day,'".$mulai."','".$akhir."') AS diff")->row();
        $totaldata = count($nip);
        $skrg = $this->db->query("SELECT GETDATE() tgl")->row();
            for($x = 0;$x<=$totaldata;$x++)
                {
                    for($y=0;$y<$jumlahrange->diff;$y++){
                        $this->db->query("INSERT INTO attendance 
                            (Nip,AttendanceDate,InTime,OutTime,AttendanceCode,RosterCode,LocationCode,Remarks,CreatedDate,CreatedBy,ModifiedDate,ModifiedBy)
                        values(
                            '".$nip[$x]."',DATEADD(DAY,".$y.",'".$mulai."'),'','','P3','','','".$keterangan."','".$skrg->tgl."','$niplogin','','')
                        ");
                    }
            }

我的save没问题,但我的表中有空字段。在行10,11,12中。那一行应该不存在吧?

我使用的是SqlServer 2008和Codeigniter。我知道我可以使用insert_batch,但我想用这种方式。

enter image description here

3 个答案:

答案 0 :(得分:1)

在您的第for($x = 0;$x<=$totaldata;$x++)行中我非常确定您要写<而不是<=

答案 1 :(得分:1)

要克服这些问题,您可以使用foreach循环

    foreach($resourcedata as $value){
          //your code goes here and you will get all array elements sequentially in **$value** variable
    }

答案 2 :(得分:0)

这一个就在你的指尖。 $ nip [$ x]为空。错误日志或转储并在第一个循环$ nip [$ x]上死掉,看看它返回什么。如果它实际上不是null,那么它可能是数据类型问题(string vs int)。