将数组插入数据库

时间:2012-03-20 20:02:28

标签: php

将数组插入数据库时​​是否有最佳做法?我过去已经成功使用了foreach循环,以及各种数组函数。有没有更好的办法?

以下是示例代码:

public function InsertRequests($id) {

$db = Database::getHandler();

$selected_requests = $this->GetRequests($this->allrequests);

  foreach($selected_requests as $requestid) {

$sql = "INSERT INTO requests (userid,requestid,date) VALUES (?,?,NOW())"; 
        $stmt = $db->prepare($sql);
        $stmt->bindParam(1,$id,PDO::PARAM_STR);
        $stmt->bindParam(2,$requestid,PDO::PARAM_STR);
        $stmt->execute();

    }

    return true;
}

}

1 个答案:

答案 0 :(得分:1)

您可以使用单个查询插入多个记录,如下所示:

INSERT INTO TABLENAME ( fieldOne, fieldTwo, fieldThree ) VALUES 
( 'Jack', 'Nickholson', 'M' ), 
( 'Audrey', 'Hepburn', 'F' ),
( 'Salvador', 'Dali', 'M' )
...

因此,准备INSERT语法在常规循环中使用自定义查询构建器迭代数据数组,而不是执行一次。更好的做法是使用像@ Karoly所说的ORM库。