我是laravel发展的新生。
我使用mysql数据库,并希望在数据库中插入原始数据。我添加了$table->binary()
列。如何将数据插入列。
Schema::table('users', function($table)
{
$table->binary('raw');
});
答案 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()接受多个数组(它们可以映射到表中的各个列)。
我希望这是你需要的。
答案 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']);