Laravel - 准备好的声明包含太多占位符

时间:2015-01-16 00:12:45

标签: php laravel laravel-4

我想知道是否有人可以帮我一把。

我编写了一个导入脚本,它适用于少数几个点,但是当我开始导入大数字时,我收到以下错误:

General error: 1390 Prepared statement contains too many placeholders

我用来导入的代码如下:

foreach ( $items as $item ) {

    $insert[] = array(

        'userid' => User::current()->id,
        'lati' => $item[0],
        'long' => $item[1],
        'streetNumber' => $item[2],
        'streetName' => $item[3],
        'country' => $item[6],
        'state' => $item[5],
        'pcode' => $item[7],
        'suburb' => $suburb,
        'created_at' => new DateTime,
        'updated_at' => new DateTime

    );

}

if(DB::table('mytable')->insert($insert))
{

    return true;

} else {

    return false;           

}   

任何有关如何解决这个问题的帮助都将非常感激。

1 个答案:

答案 0 :(得分:-1)

function addData($items) {
    $itemsTemp = [];
    if (count > 1000) {
        $itemsTemp = array_slice($items, 1000);
        $items = array_slice($items, 0, 1000);
    }
    foreach ( $items as $item ) {

        $insert[] = [

            'userid' => User::current()->id,
            'lati' => $item[0],
            'long' => $item[1],
            'streetNumber' => $item[2],
            'streetName' => $item[3],
            'country' => $item[6],
            'state' => $item[5],
            'pcode' => $item[7],
            'suburb' => $suburb,
            'created_at' => new DateTime,
            'updated_at' => new DateTime

        ];

    }
    if (DB::table('mytable')->insert($insert)) {
        if ($itemsTemp) {
            addData($itemsTemp);
        }
    } else {
        return false;
    }
    return true;


}