繁体   English   中英

如何在laravel的mysql数据库中插入原始数据

[英]How to insert raw data in mysql database in laravel

我是laravel开发的大一新生。 我用的是mysql数据库,想在数据库中插入原始数据。 我用$table->binary()添加列。 以及如何将数据插入到列中。

Schema::table('users', function($table)
{
    $table->binary('raw');
});

尝试这个:

假设您有以下表(称为“用户”)

id|user|fname|lname|email|etc..
-------------------------
1|jdoe|john|doe|jdoe@example.com|blah....

DB::table('users')->insert(
    array('user' => 'jdoe',
          'fname' => 'john',
          'lname' => 'doe',
          'email' => 'jdoe@example.com')
);

insert() 接受多个数组(依次可以映射到表中的各个列)。

我希望这是你所需要的。

基于此文档: http : //laravel.com/docs/queries#inserts

你可能想看看 Eloquent,Laravel 使用的默认 ORM。 它使数据库变得非常容易。 有些人可能会有不同的想法,但这可以通过接口和存储库来解决。

Laravel 使用 MVC 范式。 数据库应该通过模型更新。 因此,通过用户提交的视图,假设是一个新用户,控制器获取发布请求并将数据传递给模型,然后模型更新数据库。

因此,假设您将使用 Laravel 默认的 User 模型。 该模型已经从 Eloquent 扩展而来。 您应该已经有一个数据库:

用户表数据库

id, auto_increment
username, varchar(255)
password, varchar(255)
email, varchar(255)
created_at (datetime)
updated_at (datetime)

应用程序/模型/User.php

class User extends Eloquent implements UserInterface, RemindableInterface {

应用程序/控制器/HomeController.php

public function showWelcome()
{
   $user = new User;
   $user->username = 'johndoe';
   $user->email = 'john@johndoe.com';
   $user->password = 'password';
   $user->save();
   return View::make('hello');
}

如果您正确设置了数据库并迁移了 User 表,这应该可以工作,并为您与 Laravel 中的数据库进行交互提供了一个很好的起点。 这不是将数据添加到数据库的首选方式,因为此操作不应放置在控制器内部,但这将是下一步。 我开始以这种方式学习 Laravel,它确实可以帮助您正确理解框架。

PS:

DB::query('insert into users (username, email, password) values ("johndoe", "john@johndoe.com", "password")');

这是非常不安全的并且容易受到 SQL 注入的影响,但 Laravel 提供了解决方案,也适用于原始查询。

您可以将这种方式用于原始插入(我在 laravel/Lumen 8 上对此进行了测试):

DB::insert('insert into users (email, votes) values (?, ?)', ['john@example.com', '0']);

如果你想部分原始查询,你可以这样做

DB::('table')
->insert([
   'id'=>1,
   'date'=>DB::raw('CURDATE()')
]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM