Mysql 使用Laravel将CSV文件植入数据库时,文本被截断
尝试为我的数据库设定种子时,会发生以下情况:Mysql 使用Laravel将CSV文件植入数据库时,文本被截断,mysql,database,laravel,csv,seeding,Mysql,Database,Laravel,Csv,Seeding,尝试为我的数据库设定种子时,会发生以下情况: Seeding: UsersTableSeeder array ( 'name' => 'Tester One', 'email' => 'testerone@gmail.com', 'password' => 'Testing123', Tester Two',esterone.png ) 数组的最后一个值显示下一个测试仪的名称,并且由于某种原因,第一个测试仪图像的第一个字符被切断。下一个测试员甚至都没有种子。当我查
Seeding: UsersTableSeeder
array (
'name' => 'Tester One',
'email' => 'testerone@gmail.com',
'password' => 'Testing123',
Tester Two',esterone.png
)
数组的最后一个值显示下一个测试仪的名称,并且由于某种原因,第一个测试仪图像的第一个字符被切断。下一个测试员甚至都没有种子。当我查看数据库时,最后一列(名为“avatar”)显示了整个图像文件(因此testerone.png而不是esterone.png)以及Tester Two的名称
这是我的userstableeder.php
use Illuminate\Database\Seeder;
use League\Csv\Reader;
class UsersTableSeeder extends Seeder
{
public function run()
{
$path = resource_path() .'/postSeed/userseed.csv';
$reader = Reader::createFromPath($path, 'r');
$records = $reader->getRecords(['name', 'email', 'password', 'avatar']);
foreach ($records as $offset => $record) {
var_export($record);
DB::table('users')->insert([
'name' => $record['name'],
'email' => $record['email'],
'password' => bcrypt($record['password']),
'created_at' => date("Y-m-d H:i:s"),
'updated_at' => date("Y-m-d H:i:s"),
'avatar' => $record['avatar'],
]);
}
}
}
这是我的CSV文件的外观:
Tester One,testerone@gmail.com,Testing123,testerone.png
Tester Two,testertwo@gmail.com,Testing123,testertwo.jpg
Tester Three,testerthree@gmail.com,Testing123,testerthree.jpg
Tester Four,testerfour@live.be,Testing123,testerfour.jpg
Testert Five,testerfive@hotmail.com,Testing123,testerfive.jpg
Tester Six,testersix@stubru.be,Testing123,testersix.jpg
如果有人能帮我,那就太好了 在网上浏览了一段时间后,我试图看看我的CSV文件是否有问题。我把它们穿上,然后从那里重新下载,它突然似乎起了作用。奇怪。这似乎是您的CSV有问题。你能发布测试仪一和测试仪二的行吗?Hi@flip,用csv文件更新!对不起,你能在文本编辑器(记事本或gedit)中打开它并查看原始格式吗?我添加了原始格式!很高兴你修好了。我猜是某个隐藏的角色(比如新词)让读者觉得这句话过早结束了。