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

时间:2014-04-30 03:09:17

标签: php mysql laravel

我是laravel发展的新生。 我使用mysql数据库,并希望在数据库中插入原始数据。我添加了$table->binary()列。如何将数据插入列。

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

3 个答案:

答案 0 :(得分:12)

试试这个:

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

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

答案 1 :(得分:2)

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

Laravel使用MVC范例。应该通过模型更新数据库。因此,通过视图,用户提交让我们说新用户,控制器获取发布请求并将数据传递给模型,模型更新数据库。

因此,我们假设您将使用Laravel默认用户模型。这个模型已经从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为此提供了解决方案,也适用于原始查询。

答案 2 :(得分:0)

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

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