[转]Laravel 4之数据库操作
数据库配置
Laravel数据库配置在app/config/database.php
中进行,其中
'fetch'=> PDO::FETCH_CLASS,
设置数据返回格式,默认以类放回,你以$book->name
形式访问数据。如果设置成PDO::FETCH_ASSOC
,则以数组形式返回$book['name']
。
'default'=>'mysql',
指定数据库连接,在下面的connections
中配置你需要的数据库。你也可以创建你自己的多个数据库连接。
'connections'=> array(
......
'mysql'=> array(
'driver'=>'mysql',
'host'=>'localhost',
'database'=>'database',
'username'=>'root',
'password'=>'',
'charset'=>'utf8',
'collation'=>'utf8_unicode_ci',
'prefix'=>'',
),
......
),
Schema结构生成器
创建表
Schema::create('users',function($table)
{
$table->increments('id');
$table->string('username',32);
});
创建了一张users
表,包含俩个字段。关于其他类型的字段参考官方手册。
字段修饰
$table->string('username');
$table->unique('username');
//链式
$table->string('username')->unique();
其他修饰还包括
$table->string('name')->nullable();
$table->string('name')->default('John Doe');
$table->integer('age')->unsigned();
$table->integer('age')->index();
$table->string('username')->primary();
为多个字段添加修饰
$table->index(array('age','weight'));
更新表
重命名表
Schema::rename('users','idiots');
Schema::table()
更新表,添加字段
Schema::table('example',function($table)
{
$table->string('name');
$table->string('name')->after('email');
});
删除字段
$table->dropColumn('name');
$table->dropColumn(array('name','age'));
$table->dropColumn('name','age');
重命名字段
$table->renameColumn('name','nickname');
删除修饰
$table->dropPrimary(array('name','email'));
$table->dropUnique('example_name_unique');
$table->dropIndex('example_name_index');
删除表
Schema::drop('example');
Schema::dropIfExists('example');
指定数据库连接
Schema::connection('mysql')->create('example',function($table)
{
$table->increments('id');
});
检查存在性
Schema::hasTable('author')
Schema::hasColumn('example','id')
设置存储引擎
$table->engine ='InnoDB';
Migrations
Migrations是一种数据库版本控制工具,其当前数据库保持最新或是返回到过去的某个版本。
创建Migrations
使用 Artisan 命令行的migrate:make
命令创建一个Migrations
$ php artisan migrate:make create_users
CreatedMigration:2013_06_30_124846_create_users
Generating optimized class loader
Compiling common classes
会创建一个PHP文件在app/database/migrations/2013_06_30_124846_create_users.php
,里面包含两个默认函数up()
和down()
.然后我们可以在里面创建表或是删除表
publicfunction up()
{
Schema::create('users',function($table)
{
$table->increments('id');
$table->string('name',128);
$table->string('email');
$table->string('password',60);
$table->timestamps();
});
}
publicfunction down()
{
Schema::drop('users');
}
我们也可以让migrate
为我们自动创建表样式
$ php artisan migrate:make create_users --create --table=users
还可以使用--path=app/migs
选项指定路径
运行Migrations
Laravel会自动安装Migrations,你也可以手动安装Migrations
$ php artisan migrate:install
运行Migrations
$ php artisan migrate
Migration table created successfully.
Migrated:2013_08_20_044917_create_users
运行时有可能出现[PDOException] SQLSTATE[HY000] [2002] No such file or director
错误,那是因为你的mysql.sock
设置不正确。还有就是命令行的PHP是系统默认的PHP而不是XAMPP
中的PHP,因此你需要修改系统默认的php.ini
文件,找到并修改pdo_mysql.default_socket
pdo_mysql.default_socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
运行某路径下的Migrations
$ php artisan migrate --path=app/migs
运行某个包下的所有迁移
$ php artisan migrate --package=vendor/package
回滚Migrations
回滚最后一次迁移
$ php artisan migrate:rollback
回滚所有迁移
$ php artisan migrate:reset
回滚所有迁移并重新运行所有迁移
$ php artisan migrate:refresh
$ php artisan migrate:refresh --seed
结束
[转]Laravel 4之数据库操作的更多相关文章
- [Laravel] Laravel的基本数据库操作部分
[laravel] laravel的数据库配置 找到程序目录结构下.env文件 配置基本的数据库连接信息 DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=blog ...
- laravel中的数据库操作(增删改查)方法一
导入命名空间和DBnamespace App\Http\Controllers; use Illuminate\Support\Facades\DB; public function index(){ ...
- laravel框架总结(七) -- 数据库操作
1.使用DB门面进行基本操作 一旦你设置好了数据库连接,就可以使用 DB facade 来进行查找.DB facade 提供每个类型的查找方法:select.update.insert.delet ...
- laravel 数据库操作
1 配置信息 1.1配置目录: config/database.php 1.2配置多个数据库 //默认的数据库 'mysql' => [ 'driver' => 'mysql', 'hos ...
- laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)
laravel基础课程---13.数据库基本操作2(lavarel数据库操作和tp对比) 一.总结 一句话总结: 非常非常接近:也是分为两大类,原生SQL 和 数据库链式操作 学习方法:使用时 多看手 ...
- laravel 连接同一服务器上多个数据库操作 、 连接多个不同服务器上的不同数据库操作以及多个数据库操作的事务处理
!注意:标红的要注意区分开 第一步.配置.env文件(同一服务器上多个数据库) DB_CONNECTION=pgsqlDB_HOST=IP(例如:127.0.0.1)DB_PORT=端口号(例如:54 ...
- Laravel—数据库操作与Eloquent模型使用总结
数据库操作 执行原生SQL //查询 $emp = DB::select('select * from employees where emp_no = 1'); $emp = DB::select( ...
- PHP数据库操作:使用ORM
之前我发了一篇博文PHP数据库操作:从MySQL原生API到PDO,向大家展示PHP是如何使用MySQL原生API.MySQLi面向过程.MySQLi面向对象.PDO操作MySQL数据库的.本文介绍如 ...
- Laravel 5.2数据库--多个关联关系,带条件约束的渴求式加载的问题
### 今天在连表获取数据的时候,老是获取不到想要的,确实有点无力适从的感觉. 归根到底,还是对laravel不够熟悉,至少是数据库操作那块. ### 问题是这样的: 我想要通过连表中间表,拿中间表的 ...
随机推荐
- compareTo简介
compareTo()方法是用来比较字符串大小,该方法用来判断一个字符串是大于,等于还是小于另一个字符串.判断字符串大小的依据是根据他们在字典中的顺序决定的 语法 Str1.compareTo(Str ...
- Kerberos-KDC
Kerberos提供一种较好的解决方案,它是由MIT发明的,Kerberos建立了一个安全的.可信任的密钥分发中心(KDC, Key Distribution Center).Kerberos是一种认 ...
- SQL Server常用脚本
一.迁移登录用户脚本: select 'create login [' + p.name + '] ' + case when p.type in('U','G') then 'from window ...
- xhtml规范
在使用XHTML语言进行网页制作时,必须要遵循一定的语法规范.下面进行详细讲解,其中具体内容可以分为以下几点. 文档方面: 必须定义文档类型(DTD)和你的名字空间 标签方面: 所有标签均要小写,合理 ...
- Emacs显示行号
在配置.emacs文件中加上 (global-linum-mode t) 启动emacs后按 m-x global-linum-mode 就可以显示行号,但是每次打开emacs,要重新 ...
- hdu5360 Hiking(水题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Hiking Time Limit: 6000/3000 MS (Java/Oth ...
- 编译Boost 详细步骤
vs2008编译boost [一.Boost库的介绍] Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一. Boost库由C++标准委员会 ...
- NAS4Free 安装配置(五)配置SMB
配置SMB 现在我们有2块存储设备,一块做下载盘,一块做数据盘 为了便于管理和扩展,我们分别在两块盘上建文件夹和Dataset 对于download盘,因为是UFS,所以只能建文件夹 我们把整个盘共享 ...
- Effective Java2读书笔记-对于所有对象都通用的方法(三)
第12条:考虑实现Comparable接口 这一条非常简单.就是说,如果类实现了Comparable接口,覆盖comparaTo方法. 就可以使用Arrays.sort(a)对数组a进行排序. 它与e ...
- 数据库语句union的总结
select * from ( (select * from user limit 0,3) union (select * from user limit 10,30) ) tmp where ui ...