laravel(五)-laravel中的数据库原始查找

laravel提供三种数据库操作方式:

  1. DB facade(原始查找)
  2. 查询构造器
  3. Eloquent ORM

laravel数据库配置文件

应用的数据库配置位于 config/database.php 文件中。

laravel中的数据库原生操作(DB facade)

配置好数据库连接后,就可以使用 DB 来运行查询。 DB 为每种查询提供了相应方法: select, update, insert, delete, 和 statement 。

Select 查询

运行一个最基本的查询,可以使用DB的 select 方法:
$users = DB::select('select * from users where active = ?', [1]);
}

传递给 select 方法的第一个参数是原生的 SQL 语句,第二个参数需要绑定到查询的参数绑定,通常,这些都
是 where 字句约束中的值。参数绑定可以避免 SQL 注入攻击。
select 方法以数组的形式返回结果集,数组中的每一个结果都是一个 PHP StdClass 对象,从而允许你像下面
这样访问结果值:

foreach ($users as $user) {
    echo $user->name;
}
使用命名绑定

除了使用 ? 占位符来代表参数绑定外,还可以使用命名绑定来执行查询:

$results = DB::select('select * from users where id = :id', ['id' => 1]);

运行插入语句

使用 DB 的 insert 方法执行插入语句。和 select 一样,改方法将原生 SQL 语句作为第一个参数,将
绑定作为第二个参数:

DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);

运行更新语句

update 方法用于更新数据库中已存在的记录,该方法返回受更新语句影响的行数:

$affected = DB::update('update users set votes = 100 where name = ?', ['John']);

运行删除语句

delete 方法用于删除数据库中已存在的记录,和 update 一样,该语句返回被删除的行数:

$deleted = DB::delete('delete from users');

运行一个通用语句

有些数据库语句不返回任何值,对于这种类型的操作,可以使用 DB 的 statement 方法:

DB::statement('drop table users');

发表评论