Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用数组向表中大量插入_Php_Mysql_Arrays_Laravel - Fatal编程技术网

Php 使用数组向表中大量插入

Php 使用数组向表中大量插入,php,mysql,arrays,laravel,Php,Mysql,Arrays,Laravel,我在PHP框架-Laravel的帮助下编写代码。此代码用于将图像上载到Amazon S3,并将每个图像信息存储到MySQL表: $created_at = new DateTime; $aws_path = 'path/to/folder'; $files = Input::file('images'); $insert[] = array(); #Initialize array for mass inserting into table foreach($files as

我在PHP框架-Laravel的帮助下编写代码。此代码用于将图像上载到Amazon S3,并将每个图像信息存储到MySQL表:

$created_at = new DateTime;
$aws_path   = 'path/to/folder';
$files      = Input::file('images');
$insert[]   = array(); #Initialize array for mass inserting into table

foreach($files as $file) {

        # Image data

        $image_id = mt_rand(1000000000,9999999999);
        $extension= $file->guessClientExtension();
        $filename = $aws_path.'/'.$image_id.".".$extension;
        $path = $file->getRealPath();

        #UPLOAD IMAGE TO AMAZON S3
        $obj = array(
            'Bucket'     => 's3.bucket.com',
            'Key'        => $filename,
            'SourceFile' => $path,
            'ACL'        => 'public-read',
        );
        AWS::get('s3')->putObject($obj);

        $insert[] = array(
            'car_id'            => $car_id,
            'image_id'          => $image_id,
            'image_extension'   => $extension,
            'is_main'           => true,
            'created_at'        => $created_at
        );
}

DB::table('images')->insert($insert); #THIS LINE DOESN'T WORK
现在,这段代码可以正常工作100%,除了我不能将数据提交到我的表,$insert变量应该用每个图像的数据填充,然后在foreach循环结束后,我将$insert上的数据“插入”到我的名为“图像”的表中


我很抱歉没有任何错误,它就是不起作用。为什么会这样?提前感谢。

我相信您正在添加一个额外的阵列:

试试看

    $insert = array(
        'car_id'            => $car_id,
        'image_id'          => $image_id,
        'image_extension'   => $extension,
        'is_main'           => true,
        'created_at'        => $created_at
    );

您的
$insert
数组的第一个元素是空数组

不要像这样初始化
$insert
(第4行):

试试看:

$insert = array();

我刚发现我是个白痴(很抱歉)


我的代码总是有效的,但我从来没有意识到我能够在PHPmyadmin中更改表的页面,并认为我不能添加超过30条记录,而是添加其他页面中的其他记录。所以我总共有140条来自多个测试的记录。人们在这里浪费了2天,比我的截止日期少了2天。感谢所有帮助您的人,您总是对的。

感谢您的帮助,但我尝试了两种方法,但都没有成功。我刚刚发现了错误@alfallouji您可以在本页中阅读它(我回答我自己的问题),但您也是对的。请检查您的表架构并将其与插入内容进行比较。我会在direct sql中获得一个原始的工作插入,用于测试,然后将其转换为laravel格式。如果我在foreach循环中使用它,并且不使用数组进行大规模插入,那么它将非常有效。抱歉@Vladimir Ramik,我刚刚发现了错误,您可以在本页中阅读它(我回答我自己的问题),但您也是对的。
$insert = array();