[转]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_usersCreatedMigration:2013_06_30_124846_create_usersGenerating optimized class loaderCompiling 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 migrateMigration 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不够熟悉,至少是数据库操作那块. ### 问题是这样的: 我想要通过连表中间表,拿中间表的 ...
随机推荐
- LG 2.2.1 P350安卓系统刷机,问题总结,希望对需要的朋友有助
手机误删软件导致短信,键盘等无声音提醒 我的手机前几天被我误删了一个软件,导致电话接不了,别人打电话的时候,老提示我在通话中,但是我可以在通话中看到对方的打电话记录.短信,键盘,USB连接,等等都没有 ...
- [Javascript] Call Stack
Every time when a function run it will be push into the call stack and put on the top, you can thin ...
- telnet IP不通/sybase central工具无法连接到数据库
问题描述:客户端sybase central工具无法连接到数据库 服务端操作系统:RHEL5.8_x64,安装sybase-ASE15.7,端口号4112 IP:192.168.1.220 hos ...
- sqlite创建数据库问题
1.<Sqlite权威指南>上说是这么创建数据库的: sqlite3 test.db 但是我写了这条语句之后出现了下面的情况(注:安装Sqlite过程见 ...) 我的sqlite3放在 ...
- oracle学习笔记(一)用户管理
--oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...
- Access restriction: The type * is not accessible due to restrict,报错问题
解决方案1: Eclipse 默认把这些受访问限制的API设成了ERROR. Windows -> Preferences -> Java -> Compiler -> Er ...
- iOS的触摸事件
在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件,我们称其为@''响应者对象''UIApplication,UIViewController,UIView都 ...
- Qt窗口句柄
关键字: 透明效果,异形,子窗口,控件,浮窗,同级句柄
- MSSQL-资源地址
1.SQL-SERVER客户端管理工具.下载地址 https://msdn.microsoft.com/en-us/library/mt238290.aspx?f=255&MSPPError= ...
- 最大公约数(gcd):Euclid算法证明
1个常识: 如果 a≥b 并且 b≤a,那么 a=b. 2个前提: 1)只在非负整数范围内讨论两个数 m 和 n 的最大公约数,即 m, n ∈ N. 2)0可以被任何数整除,但是0不能整除任何数,即 ...