配置完数据库连接,就可以使用DB类进行查询了。
查询
$results = DB::select('select * from users where id = ?', array(1));
select方法会以数组形式返回查询结果。
插入
DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));
更新
DB::update('update users set votes = 100 where name = ?', array('John'));
删除
DB::delete('delete from users');
注意:update和delete语句返回受影响的行数。
通用语句
DB::statement('drop table users');
监听Query事件
DB::listen(function($sql, $bindings, $time)
{
//
});
数据库事务
DB::transaction(function()
{
DB::table('users')->update(array('votes' => 1));
DB::table('posts')->delete();
});
注意:transaction闭包中的任何异常将会导致事务自动回滚。
有时候也许你想自己开启事务:
DB::beginTransaction();
你也可以自己回滚事务:
DB::rollback();
最后,你可以通过commit方法提交事务:
DB::commit();
多个数据库连接访问
当使用多个数据库连接时,可以通过DB::connection方法访问它们:
$users = DB::connection('foo')->select(...);
你可以通过PDO实例访问原生连接:
$pdo = DB::connection()->getPdo();
有时候你需要重连数据库:
DB::reconnect('foo');
如果因为超出PDO实例的最大连接数限制而要断开连接,使用disconnect方法:
DB::disconnect('foo');
查询日志
默认情况下,Laravel使用日志记录当前请求的所有数据库查询操作,但是某些时候,比如插入大量数据,会引起应用使用过量内存。为了关闭日志,可以使用disableQuery方法:
DB::connection()->disableQueryLog();
获取查询日志记录,可以用过getQuery方法:
$queries = DB::getQueryLog();
B. Laravel/Lumen 中怎么执行以下 SQL 语句
select '第'||b.num||‘行’,第||instr(a.A||a.B||a.C||a.D||a.E,'1')|||'列' from table a, (select max(num) num ,max(id) id from (select rownum num,rowid id,A||B||C||D||E ABCDE from table) where ABCDE like ‘%1%' and id
C. laravel怎么写sql语句
QueryBuilder类中有toSql()方法可以获取sql语句的 比如: $sql = UserModel::query()->where('username','admin')->toSql(); dd($sql); //select * from user_table where username = 'admin'
D. laravel 怎么调用mysql存储过程
laravel并没有提供直接调用存储过程的实现,只能通过拼sql的方式调用存储过程,比如:
DB::statement('call存储过程名称(参数)');
或者
DB::select('call存储过程名称(参数)');
E. laravel orm where 条件中 mysql函数 怎么用
这种ORM,肯定会支持的一个功能就是 直接使用原生SQL。所以~ 懂了吧
--1.插入数据
DB::insert('insertintousers(id,name,email,password)values(?,?,?,?)',[1,'Laravel','[email protected]','123']);
--2.查询语句
$user=DB::select('select*fromuserswhereid=?',[1]);
--我们还可以看到在执行查询的时候使用了参数绑定,以避免SQL注入。除此之//外还可以使用命名绑定:
$user=DB::select('select*fromuserswhereid=:id',[':id'=>1]);
--3.更新语句
$affected=DB::update('updateuserssetname="LaravelAcademy"wherename=?',['Academy']);
--4.删除语句
$deleted=DB::delete('deletefromusers');
但是这种使用MySQL函数,会导致不通用。这一点需要考虑一下~
F. laravel ORM怎么打印出执行sql语句
aravel提供了3种操作数据库方式:DBfacade(原始方式)、查询构造器和EloquentORM。下面我将逐一讲解。数据库的配置文件在config目录下的database.PHP里。打开这个文件,找到MySQL的配置项。这里有个env,它其实是调用了laravel根目录下的.env文件,这个文件存储了数据库的配置信息。打开它。修改为项目的数据库信息即可。请自行建一个数据库,其中数据库得包含vipinfo表,并且插入一些数据,以方便下面使用。表的结构如下图。
G. laravel数据库查询,在数据库里面可以运行,在代码里面错误
在group by 后边加多“,activity_scheles.title"
原因:sql基本语法错误,group by 后边要跟select列名保持一致,mysql没报错可能是因为你关了ONLY_FULL_GROUP_BY这个sql_model
H. laravel5 如何查看最后一条sql语句
coposer 加载 laravel-debugbar