`
xieye
  • 浏览: 836071 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

php的db类库Eloquent单独使用系列(1)

    博客分类:
  • PHP
阅读更多
我的Eloquent单独使用系列文章
php的db类库Eloquent单独使用系列(1)
php的db类库Eloquent单独使用系列(2) - 分页
php的db类库Eloquent单独使用系列(3) - sql日志
php的db类库Eloquent单独使用系列(4)- 事件监听
php的db类库Eloquent单独使用系列(5)- 模型转数组
php的db类库Eloquent单独使用系列(6)- 一对一关联
php的db类库Eloquent单独使用系列(7)- 一对多关联
php的db类库Eloquent单独使用系列(8)- 多对多关联
php的db类库Eloquent单独使用系列(9)- 多对多关联 - 表关联自身
php的db类库Eloquent单独使用系列(10)- 多对多关联 - 远程一对多
php的db类库Eloquent单独使用系列(11)- 多对多关联 - 添加模型属性
php的db类库Eloquent单独使用系列(12)- 结果集模型转数组 - 2

elquent查询集锦:这是一个外链,作者chajinglong
Laravel SQL 查询语句集锦

composer:

"illuminate/database":"5.4.27",
"illuminate/events":"5.4.27" 这个可不加载,但使用它提供的模型类就要加载。

请注意,这个版本需要php5.6支持。

表结构如下:
CREATE TABLE `test_databases` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `db_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '库名',
  `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '测试用户id',
  `created_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `updated_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `test_databases_db_name_user_id_unique` (`db_name`,`user_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci


insert into test_databases values(1,'哈哈',1,11,22);
insert into test_databases values(2,'嗯嗯',2,33,44);


示例:
<?php

namespace app\control;
use \Illuminate\Database\Capsule\Manager as Capsule;
// use \Illuminate\Events\Dispatcher;
// use \Illuminate\Container\Container;

class Ill {
   
 public function index( $req, $res, $args) {
       $capsule = new Capsule;
       $capsule->addConnection([
           'driver'    => 'mysql',
           'host'      => '127.0.0.1',
           'database'  => 'test',
           'username'  => 'root',
           'password'  => 'root',
           'charset'   => 'utf8',
           'collation' => 'utf8_unicode_ci',
           'prefix'    => '',
       ]);
       $capsule->setAsGlobal();
       $conn =$capsule; 
       echo "<h1>select(获取全部), (获取行)没有, fetchColumn没有</h1>";
       $users = $conn::select('SELECT * FROM test_databases limit 2');
       var_dump($users);
       echo "<hr>";
       //
       echo "插入示例<br>";
       $conn::insert('insert into test_databases (user_id, db_name) values (?, ?)', [time(), '汽车']);
     //  echo "插入id为:". $conn::insertGetId();
       echo "修改示例<br>";
      $result = $conn::update('update test_databases set user_id=user_id+'.mt_rand(10000,99999).
              ' where db_name=?', ['汽车']);
       echo "更新影响的行数:". $result."<br>";
       $result = $conn::delete('delete from test_databases where db_name=? limit 1', ['汽车']);
       echo "删除影响的行数:". $result."<br>";
       
       // 这里执行表结构定义,加减字段等语句
     //  DB::statement('drop table test_databases');
       echo "<h2>查询构造器使用</h2>";
       //获取行
       echo "<h5>获取单行</h5>";
       $user = $conn::table('test_databases')->where('id', 1)->first();
       
       echo $user->db_name."<br>";
       echo "<h5>获取单个值</h5>";
       echo $conn::table('test_databases')->where('id', 1)->value('db_name') . "<br>";
       echo "<h5>获取多行</h5>";
       $user = $conn::table('test_databases')->where('id','<', 3)->get();
       var_dump($user);echo "<br>";
       echo $user[0]->db_name."<br>";
       
       echo "<h5>获取一列数据</h5>";
       $titles = $conn::table('test_databases')->where('id','<', 3)->pluck("db_name");
       echo $titles[0];
       
       echo "<h5>插入数据</h5>";
       $id = $conn::table('test_databases')->insertGetId(
               ['db_name' => mt_rand(1000,10000), 'user_id' => mt_rand(1000,10000)]
       );
       echo "<h5>插入id:{$id}</h5>";
       
       echo "<h5>更新数据示例</h5>";
       $result = $conn::table('test_databases')
         ->where('id', 1)
         ->update(['user_id' => mt_rand(10,10000)]);
       echo "更新行数". $result;
         
       
       echo "<h5>删除数据示例</h5>";
       $result = $conn::table('test_databases')
         ->where('id', $id)
         ->delete();
       echo "删除行数". $result;
       return $res;
   }
}

分享到:
评论

相关推荐

    php一些比较常用类库及例子

    以上只是PHP开发中常用类库的一部分,实际开发中还有更多优秀的类库,如Laravel的Eloquent ORM、Guzzle HTTP客户端库等,它们极大地提高了开发效率和代码质量。了解并熟练使用这些类库,将使你的PHP开发工作更加...

    php类库整理

    3. **第三方类库**:从其他地方找来的类库可能是已经广泛使用的开源项目,例如Laravel框架中的Eloquent ORM、Symfony的HttpFoundation组件、GuzzleHTTP用于处理HTTP请求的库等。这些类库通常经过了充分的测试和优化...

    laravel常用类库与学习代码库.zip

    接着是"php中文网免费下载站.txt",这个文件可能是PHP中文网提供的一些资源链接或者使用指南,PHP中文网是一个为广大PHP开发者提供学习资料和技术支持的平台。通过这个文本文件,你可以获取到更多关于Laravel以及...

    Eloquent_JavaScript 3rd

    Eloquent JavaScript 3rd, Eloquent JavaScript 3rd Eloquent_JavaScript_3rd

    Laravel开发-eloquent-uuid

    然而,Eloquent默认使用的是自增ID作为主键,这在某些场景下可能不理想,例如,当你希望模型的ID具有更高的隐私性或者不连续性时。这就是`eloquent-uuid`这个扩展包的作用,它为Laravel4的Eloquent模型添加了对UUID...

    Laravel开发-eloquent-sortable

    要使用"eloquent-sortable",首先需要安装这个扩展。可以通过Composer(PHP的依赖管理工具)来完成,运行以下命令: ```bash composer require spatie/laravel-model-sort ``` 安装完成后,在你的模型中使用`...

    Laravel开发-eloquent-search

    总的来说,"laravel开发-eloquent-search"项目涵盖的主题包括Laravel Eloquent的基础、Elasticsearch的原理和使用、Laravel Scout的集成以及基于Elasticsearch的高级搜索技巧。通过学习和实践这个项目,开发者可以...

    Laravel开发-eloquent-search-map

    本文将深入探讨Eloquent Search Map的使用方法及其背后的原理。 首先,我们来理解Eloquent ORM的基本概念。Eloquent ORM为每个数据库表创建一个PHP类,称为模型,这些模型代表了数据库中的表,并提供了一种面向对象...

    Laravel开发-eloquent-mongodb-repository

    以上就是如何在Laravel项目中使用Eloquent ORM与MongoDB交互的基本步骤,以及如何结合Repository模式来组织代码。这使得我们能够在保持Laravel的优雅和简洁的同时,充分利用MongoDB的灵活性和非结构化数据处理能力。...

    Laravel开发-eloquent-scopes

    在Laravel框架中,Eloquent ORM(对象关系映射)是其核心特性之一,它提供了一个优雅的方式来处理数据库操作。Eloquent Scopes是Eloquent ORM中的一个强大工具,用于定义可重用的查询条件,使得代码更加整洁、可维护...

    Laravel开发-silex-capsule-eloquent

    Eloquent允许开发者使用PHP对象来代表数据库表,每个对象对应表中的一个行。它的模型类提供了丰富的功能,如关系处理、数据填充、动态属性等,极大地提高了开发效率。在Silex中使用Eloquent,开发者可以享受Laravel...

    Laravel开发-eloquent-postgres-uuids

    5. **使用Eloquent操作数据**: 现在你可以像平常一样使用Eloquent来创建、读取、更新和删除记录,Eloquent会自动处理UUID的生成和验证。 在实际应用中,可能还需要处理UUID与其他系统之间的交互,如API请求或数据...

    Laravel开发-eloquent-custom

    2. **扩展查询构造器**:我们可以通过门面(Facade)`DB`或Eloquent模型的`newQuery()`方法,自定义查询构建器的方法。例如,添加一个`betweenDates`查询方法: ```php public function scopeBetweenDates($query, ...

    Laravel开发-eloquent-cache

    在Laravel框架中,Eloquent ORM(对象关系映射)是用于处理数据库操作的强大工具,而Eloquent Cache则是Eloquent ORM的一个扩展,旨在提高数据库查询的性能和效率。本篇文章将深入探讨Eloquent Cache的工作原理、...

    eloquent ruby

    ### Eloquent Ruby:深入探索Ruby语言的魅力 #### 引言 《Eloquent Ruby》是一本深受Ruby开发者喜爱的书籍,作者Russ Olsen通过本书为读者提供了一条清晰的学习路径,不仅适用于初学者,也适合那些已经有一定经验...

    Laravel开发-eloquent-codeigniter

    4. **使用模型**: 在 CodeIgniter 控制器或服务中,可以直接实例化并使用 Eloquent 模型,执行数据操作。 5. **处理路由和控制器**: 虽然 Eloquent 已经集成,但 CodeIgniter 的路由和控制器机制仍然有效,需要适配...

    Laravel开发-eloquent-castable

    在Laravel框架中,Eloquent ORM(对象关系映射)是用于处理数据库操作的强大工具,它使得PHP开发者能够以更加面向对象的方式与数据库交互。Eloquent ORM中的`cast`功能允许我们将数据库字段的数据类型在存储和检索时...

    在Symfony框架中集成了EloquentORM

    在Symfony中使用Eloquent ORM,还可以利用Symfony的服务容器来注入模型,这样可以在任何地方使用模型实例,而不需要在代码中硬编码数据库连接信息。这提高了代码的可重用性和可测试性。 总的来说,将Eloquent ORM...

    Laravel开发-eloquent-filterable

    在Laravel框架中,Eloquent ORM(对象关系映射)是用于数据库操作的强大工具,它提供了简洁、优雅的PHP语法来处理数据。本教程将深入探讨如何在Laravel开发中利用Eloquent的过滤范围(Scopes)功能,即`eloquent-...

Global site tag (gtag.js) - Google Analytics