数据库入门之运行原始 SQL 查找
一旦你设置好了数据库连接,就可以使用 DB facade 来进行查找。DB facade 提供每个类型的查找方法:select、update、insert、delete、statement。下面兄弟连帮你一一介绍。
运行一个 Select 查找#
在 DB facade 中使用 select 可以运行一个基本的查找:
<?php
namespace App\Http\Controllers;
use DB;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* 显示应用程序中所有用户的列表。
*
* @return Response
*/
public function index()
{
$users = DB::select('select * from users where active = ?', [1]);
return view('user.index', ['users' => $users]);
}
}
传递给 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]);
运行 Insert#
若要运行 insert 语法,则可以在 DB facade 使用 insert 方法。如同 select 一样,这个方法的第一个参数是原始的 SQL 查找,第二个参数则是绑定:
DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
运行 Update#
update 方法用于更新已经存在于数据库的记录。该方法会返回此声明所影响的行数:
$affected = DB::update('update users set votes = 100 where name = ?', ['John']);
运行 Delete#
delete 方法用于删除已经存在于数据库的记录。如同 update 一样,删除的行数将会被返回:
$deleted = DB::delete('delete from users');
运行一般声明#
有时候一些数据库操作不应该返回任何参数。对于这种类型的操作,你可以在 DB facade 使用 statement 方法:
DB::statement('drop table users');
监听查找事件#
如果你希望能够监控到程序执行的每一条 SQL 语句,则可以使用 listen 方法。这个方法对于纪录查找跟调试将非常有用。你可以在 服务容器 中注册你的查找侦听器:
<?php
namespace App\Providers;
use DB;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* 启动任何应用程序的服务。
*
* @return void
*/
public function boot()
{
DB::listen(function($sql, $bindings, $time) {
//
});
}
/**
* 注册一个服务提供者。
*
* @return void
*/
public function register()
{
//
}
}
分享到:
相关推荐
### T-SQL编程入门(SQL Server) #### 一、T-SQL的组成 T-SQL (Transact-SQL) 是 Microsoft SQL Server 使用的一种扩展版本的 SQL 语言,它提供了额外的功能来增强 SQL 的功能,使开发者能够更高效地管理和操作...
《Oracle开发人员SQL注入攻击入门》 SQL注入是一种常见的网络安全攻击方式,主要针对使用SQL(结构化查询语言)的数据库系统,如Oracle。攻击者通过在应用的输入字段中插入恶意SQL代码,来欺骗服务器执行非预期的...
【SQL基础知识——初级入门实例】 ...以上就是关于SQL基础的初级入门实例,包括查询优化、索引使用、视图创建、数据更新以及数据库表和关系的定义等知识点。学习这些内容有助于理解和应用SQL进行数据查询和管理。
数据库讲义:数据库基础知识与应用入门 一、数据库基本概念 数据库是计算机科学的重要组成部分,主要涉及数据的组织、存储和检索。以下是对数据库基础知识的深入解析: ### 1. 什么是数据库? 数据库是一个用于...
5SQL Server 分区函数146SQL Server 分区方案147SQL 预览147维护147维护MySQL147维护Oracle148维护PostgreSQL152维护SQLite153维护SQL Server153表查看器155网格查看155使用导览栏155编辑记录156排序、查找或替换...
Navicat是一款功能强大的数据库管理和开发工具,支持多种数据库系统,包括MySQL、MariaDB、Oracle、PostgreSQL、SQL Server和SQLite等。《Navicat开发手册》是一本为数据库开发人员编写的实用指南,它涵盖了使用...
6. **数据库编程**:利用ADO.NET进行数据库操作,如连接数据库、执行SQL语句、数据绑定和数据集的使用。 7. **异常处理**:理解并实践C#中的try-catch-finally语句,以及如何自定义异常。 8. **编译和调试技巧**:...
总的来说,这个实验涵盖了数据库设计、PHP文件操作、图像处理、数据库操作以及前端展示等多个环节,是一个全面的PHP入门项目。通过这个实践,你可以更好地理解PHP在Web开发中的应用,以及如何构建一个简单的个人相册...
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 而MyBatis Plus(MP)则是在MyBatis的基础上进行了增强,提供了更丰富的...
MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,尤其在Web应用程序中被广泛使用。MySQL 5.7版本是其一个重要里程碑,引入了许多增强特性和优化,使得它在性能、安全性和可扩展性方面都有显著提升。以下是...
系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...
MyBatis 可以使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 在标题 "mybatis3.4.7中文离线文档" 中,我们关注的是 MyBatis ...
结构化数据如数据库中的记录,具有固定格式和长度,可以使用SQL等查询语言轻松查询。而非结构化数据如文本文件、电子邮件等,没有固定格式,查询难度较大。 对于非结构化数据的查询,主要有两种方法: 1. **顺序...
【标题】"w3school 离线版(5.0)" 是一个专门针对Web开发学习者的资源集合,它提供...这个离线版w3school不仅适合初学者入门,也对有经验的开发者有参考价值,因为其内容覆盖了Web开发的各个方面,而且易于查找和学习。
- **数据源连接**:通过连接到不同的数据源,如数据库、文本文件等,收集原始数据。 - **数据模型建立**:使用Transformer等工具构建数据模型,定义数据之间的关系。 - **内容创作**:利用Report Studio、Query ...
MyBatis 可以使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 #### 二、入门指南 ##### 构建 SqlSessionFactory 从 XML ...
- **7.2.2 创建关系数据库报表**:从关系数据库(如SQL Server)中获取数据生成报表。 #### 第8讲 与关系数据库的连接 **8.1 概述** 介绍了力控软件如何与关系数据库(如Oracle、SQL Server等)进行数据交换。 *...
Apache Kylin是一个开源的、分布式的分析型数据库,专为大数据环境设计,尤其在处理PB级数据时表现出色,为企业级大数据分析提供了高效、低延迟的SQL查询能力。这本书作为大数据入门的经典教程,不仅适合初学者,也...