优雅高效的方式插入很多表MySQL

时间:2014-02-06 04:23:08

标签: php mysql sql arrays

我正在进行一项调查,目前该数据库有19个表格和大约100个列。所有这些都将被插入,因为它们是必填字段。我正在寻找一种优雅而高效的方式来插入许多表格和列。到目前为止,我想到的是创建一个多维数组,其中包含第一个键作为表名,第二个键作为列名与字段。如下所示:

    $tableArray =  array( 
        'ownerTable' => array(
            'firstNameRow' => $firstName,
            'lastNameRow' => $lastName
        ),
        'dealerTable' => array(
            'dealerNameRow' => $dealerName,
            'dealerCityRow' => $dealerCity
            )
        );

foreach($tableArray as $row => $key) {
    foreach($tableArray[$row] as $row1) {
        $sql = "(INSERT INTO $tableArray[$key] ($tableArray[$row]) VALUES ($row1)"; 
    }   
}

我没有测试这段代码,但我认为沿着这些方向的东西会起作用。我认为我看到的一个问题是每列的单独INSERT而不是每个表的INSERT。我总是可以编写代码来立即加载数组中的所有值来解决这个问题但是在我开始走开之前我想确保我没有犯大错误并浪费时间如果有的话更好的方法。

1 个答案:

答案 0 :(得分:0)

$tableArray =  array( 
        'ownerTable' => array(
            'firstNameRow' => $firstName,
            'lastNameRow' => $lastName
        ),
        'dealerTable' => array(
            'dealerNameRow' => $dealerName,
            'dealerCityRow' => $dealerCity
            )
        );

//it's for bulj query execution in single statment;
$i=1;
$sql="";
foreach($tableArray as $row => $key) {
    foreach($tableArray[$row] as $row1) {
        //here you can update i value as per row for execution
        if($i<=25)
        {
         $sql = $sql  + "(INSERT INTO $tableArray[$key] ($tableArray[$row]) VALUES ($row1);"; 
        }
        else
        {
            //execute sql statement here;
            $i=0;
            $sql="";
        }
    }   
}