首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Laravel系列4.1】连接数据库与原生查询

连接数据库与原生查询 在 PHP 的学习中,数据库,也就是 MySQL 就像它的亲兄弟一样,永远没法分家。同理,在框架中,数据库相关的功能也是所有框架必备的内容。...比如现在在我的本地测试环境中,连接数据库就是使用 .env 中如下的配置: // ……………… // ……………… DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT...这样,线上、测试和本地环境,就不会互相冲突,也不需要我们在各个环境中进行各种 hosts 修改。 原生查询 接下来,我们就学习怎么使用原生 SQL 语句进行数据库操作。...在学习 PDO 的时候,我们知道,预处理语句的执行就是先 prepare() 再 execute() 一下就可以了,特别是增删改的操作是非常类似的,那么我们在这里是不是可以在 insert() 方法里面执行一个修改或者删除语句呢...它的作用就是找到指定的连接,在默认情况下,Laravel 框架会去找 mysql 这个配置,如果我们需要操作其它数据库的话,就需要通过 connection() 来指定要连接的数据库。

3.2K50

【Laravel系列4.5】主从库配置和语法生成

它的作用是,在同一次的请求中,如果执行了增删改的操作,那么紧接着的查询也会走 write 也就是主库的查询。...因为我们并没有在 MySQL 配置主从同步,这也是为了方便我们的调试查看。很明显,第二个路由的查询语句走的就是另一个数据库了。...语法生成 讲完连接了我们再回来讲讲数据库连接中非常重要的一个东西,那就是 SQL 语句是怎么生成的。这里使用的是 语法 这个高大上的词汇,实际上简单的理解就是 查询构造器 是如何生成 SQL 语句的。...SQL 语句,会交给连接,也就是 laravel/framework/src/Illuminate/Database/Connection.php 中的 insert() 方法来执行。...总结 今天的内容其实相对来说轻松一些,毕竟关于 Laravel 数据库方面的内容重点在于之前学习过的 模型 和 查询构造器 上。

4.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel 数据库连接配置和读写分离

    默认情况下,我们在通过 Laravel 提供的数据库工具(DB 门面、查询构建器、Eloquent模型)连接数据库的时候,都没有显式指定连接,因为我们在配置文件中指定了默认的连接 mysql。...所以要连接上其它连接很简单,在查询的时候指定这个新的连接就好了,如果你使用的是 DB 门面执行原生 SQL 查询,可以这么连接老的数据库: $users = DB::connection('mysql_old...')->select(...); DB::connection('mysql_old')->insert(...); 如果你使用的是查询构建器进行数据库操作,可以这么指定(和原生操作一样): $users...connection 属性: protected $connection = 'mysql_old'; 这样,在模型类上执行查询、插入等操作时都会使用这个 mysql_old 数据库连接。...读写分离本地模拟测试 我们可以在本地简单模拟测试下读写分离配置,我们使用同一个数据库主机,不同的数据库来进行读写分离,在数据库中创建一个新的数据库用作写数据库,并将其配置到 config/database.php

    5.5K20

    MySQL 入门、安装和客户端管理工具

    Database Management System,即 RDBMS),指的是建立在关系模型基础上的数据库。...3、安装 MySQL 使用 MySQL 之前,需要先安装它,不过在搭建本地 PHP 开发环境环节,我们推荐的集成开发工具默认都包含了 MySQL: PHP/Laravel 本地开发环境搭建:Mac 篇...进入 mysql 容器 就可以在客户端运行 mysql -h localhost -u root -p 连接到数据库服务器了(默认密码是 root): ?...查看所有数据库 你可以在命令行中通过 SQL 语句执行所有 MySQL 数据库 DML/DDL 操作,这里不一一列举了,下面我们将重点介绍通过 GUI 工具来操作数据库。...MySQL Workbench 连接列表 然后就可以在连接列表中点击 laradock 进入本地 MySQL 数据库管理页面了: ?

    6.2K20

    如何在Ubuntu 16.04上使用Deployer自动部署Laravel应用程序

    在本教程中,您将自动部署Laravel应用程序,而不会出现任何宕机问题。为此,您将准备将从中部署代码的本地开发环境,然后使用Nginx和MySQL数据库配置生产服务器为该应用程序提供服务。...您可以使用SSH协议连接到Git服务器,为了安全地执行此操作,您需要生成SSH密钥。这比基于密码的身份验证更安全,让您避免在每次部署之前键入密码。 在本地计算机上运行以下命令以生成SSH密钥。...在将应用程序推送到远程Git存储库并进行部署之前,让我们首先配置生产服务器。 第3步 - 配置部署用户 部署程序能够使用SSH协议在服务器上安全地执行命令。...控制台: mysql> EXIT; 您的应用程序的数据库和用户现已配置完毕,您几乎已准备好运行第一次部署。...在本地计算机上,将工作目录更改为应用程序的文件夹: $ cd /path/to/laravel-app 在laravel-app目录中运行以下命令以初始化项目文件夹中的Git存储库: $ git init

    15.6K10

    写在 Laravel 5.5 发布之前

    A: Laravel 官方有一个Laravel 发布进程表(Laravel Release process)。 Q: 怎样才能在 Laravel 5.5 发布后最快得到通知?...A: Laravel News提供了最新消息发布的实时邮件通知,还提供了每周一期的 Laravel newsletter, 你可以加入邮件订阅,即可在新版本正式发布后尽快得到通知。...PHP 版本支持 Laravel 从来都是一个紧跟 PHP 最新进展的框架。Taylor 在推特上已经宣布 Laravel 5.5 最低要求 PHP 7以上的版本。...但是现在已经可以着手准备进行服务器上的 PHP 版本升级了,如果使用了原生 MySQL扩展,在升级到PHP 7.0 之前建议先切换到 pdo-MySQL 或者 MySQLi 来实现 MySQL 数据库连接和查询...PHP 7.0 除了引入一系列新的开发特性,还大大提升了性能,Tumblr 和 wordpress 在切换到 PHP 7 之后都证实了这一点,本站也很早就运行在 PHP 7 以上的环境下,性能的提升确实非常明显

    1.9K40

    MySQL中处理JSON数据:大数据分析的新方向,MYSQL如何处理JSON数据,参数讲解+实战案例+全网最全

    MySQL对JSON数据的支持,不仅体现在数据的存储和检索上,更重要的是提供了一系列强大的JSON函数和操作符,使得开发者能够在SQL查询中直接处理JSON数据。...MySQL的JSON数据处理功能还具有良好的扩展性和兼容性。随着JSON数据在各个领域的广泛应用,越来越多的系统和工具开始支持JSON格式。...查询执行计划可以显示MySQL如何执行SQL查询,包括使用的索引、扫描的行数以及可能的性能瓶颈。通过仔细分析查询执行计划,用户可以找出性能问题的根源,并采取相应的优化措施。...此外,一些高级的数据仓库系统还支持在JSON数据上直接运行复杂的统计分析和机器学习算法,进一步提升了分析的深度和广度。 除了上述优点外,JSON在数据仓库中的应用还带来了数据治理方面的便利。...MySQL数据库在实时数据流处理中也扮演着重要角色。通过配置如Kafka Connector这样的实时数据流接入点,MySQL可以实时接收并存储来自Kafka等消息队列的JSON数据。

    16110

    Mysql的read_only 只读属性说明 (运维笔记)

    在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-Slave主从关系设置, 以下针对real_only只读属性做些笔记记录: 1) 对于MySQL单实例数据库和...状态,可以看到salve仍然会读取master上的日志,并且在slave库中应用日志,保证主从数据库同步一致; 2) read_only=1只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super...权限的用户的数据修改操作;在MySQL中设置read_only=1后,普通的应用用户进行insert、update、delete等会产生数据变化的DML操作时,都会报出数据库处于只读模式不能发生数据变化的错误...但同时由于加表锁的命令对数据库表限定非常严格,如果再slave从库上执行这个命令后,slave库可以从master读取binlog日志,但不能够应用日志,slave库不能发生数据改变,当然也不能够实现主从同步了...为了保证主从同步可以一直进行,在slave库上要保证具有super权限的root等用户只能在本地登录,不会发生数据变化,其他远程连接的应用用户只按需分配为select,insert,update,delete

    4.8K20

    Laravel Telescope调试工具

    Telescope 可深入了解进入应用程序的请求、异常、日志条目、数据库查询、排队作业、邮件、通知、缓存操作、计划任务、变量转储等。Telescope 是您本地 Laravel 开发环境的绝佳伴侣。...在每个任务的详细信息页面上,查看他们的所有计划信息,例如他们的 cron 。 数据库查询 ? 列出了所有数据查询相关信息,就像 debug bar 一样。...如 消耗时常、完整查询、请求触发 等。 等等其他很多东西。 Q&A: 数据存放在何处?隐藏在一个 StorageRepository 接口实现之后; 类似数据库一样运作在 Redis 上。...暂时还不能,但是这个是开源项目,帮帮我们 在系统引导阶段会产生什么影响?每次只会执行一个查询。生产环境中不会频繁地把所有东西都插入进去。你可以取消你不关心的监听器。...我们能在同一个UI中检查多个应用吗?可以;只需要在同一个数据库中指向并记录它们,然后考虑做标记/过滤, 这样你就可以按需做区分了。 Laravel 的哪个版本能与之兼容? 5.7.7+。

    2.7K00

    MySQL全局锁库锁表「建议收藏」

    ,就是隐式提交的语句,在退出mysql终端的时候都会隐式的执行unlock tables,也就是如果要让表锁定生效就必须一直保持对话。...也叫独占锁 设置MySQL为只读模式 在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系。...,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户的数据修改操作;在MySQL中设置read_only=1后,普通的应用用户进行insert、update、delete等会产生数据变化的...但同时由于加表锁的命令对数据库表限定非常严格,如果再slave从库上执行这个命令后,slave库可以从master读取binlog日志,但不能够应用日志,slave库不能发生数据改变,当然也不能够实现主从同步了...为了保证主从同步可以一直进行,在slave库上要保证具有super权限的root等用户只能在本地登录,不会发生数据变化,其他远程连接的应用用户只按需分配为select,insert,update,delete

    2K40

    通过 Laravel 查询构建器实现简单的增删改查操作

    通过前面几篇教程的预热,我们已经连接上数据库,创建好了数据表,填充好了数据,接下来,就是在 Laravel 应用中实现对数据库的增删改查了。...Laravel 数据库功能的核心就是提供流式接口与数据库进行交互的查询构建器(Query Builder),支持 MySQL、Postgres、SQLite 和 SQL Server 等常见的数据库管理系统...DB 门面提供的方法执行原生的 SQL 语句,DB 门面既可以用于构建查询构建器方法链,也可以用于原生语句的执行。...使用查询构建器进行增删改查 接下来,我们开始介绍 Laravel 数据库功能的核心组件 —— 查询构建器(说是核心,是因为 Eloquent 模型的底层也是基于这个查询构建器),日常开发中,我们与数据库的交互基本都是直接或间接通过它来完成的...,无需手动设置参数绑定来规避 SQL 注入攻击,因为 Laravel 底层会帮助我们自动实现参数绑定,所以推荐使用查询构建器进行数据库操作。

    4.2K20

    Laradock 一个完整PHP的Docker本地开发环境

    介绍 Laradock 是为 PHP 提供的完整 Docker 本地开发环境,有助于在 Docker 上运行 PHP 应用程序,和 Homestead 一样提供了一系列打包好(包括配置)的 Docker...可选择你最喜欢的数据库引擎:MySQL,Postgres,MariaDB ...... 可运行专属的软件组合:Memcached,HHVM,Beanstalkd ......每个软件都在单独的容器上运行:PHP-FPM,NGINX,PHP-CLI ......易于定制,只需简单编辑 Dockerfile 即可 所有镜像均从官方基础镜像扩展而来,安全可靠 易于使用环境变量安装 / 删除容器中的软件 简洁、结构良好的 Dockerfiles(Dockerfile...打开 Laravel 项目的.env文件并添加如下配置: DB_HOST=mysql REDIS_HOST=redis QUEUE_HOST=beanstalkd 打开浏览器,访问 localhost

    22610

    技术分享 | mysql Federated 引擎最佳实战

    背景 本地 MySQL 数据库要访问远程 MySQL 数据库的表中的数据,又不想用数据同步方式去实现,所以就考虑 FEDERATED 存储引擎来实现。...相关特性 支持的语法: 在内部,实现使用 SELECT, INSERT, UPDATE,和 DELETE,但不会 HANDLER。...部署 在 server-1 上有一个数据库 db1,在 server-2 上有数据库 db2,要在 server-2 的数据库 db2 上建立 server-1 的数据库 db1 上的表 tb1 的数据表链接...在 server-1 上建立测试的数据库数据库、表 create database db1; use db1; create table tb1( id INT PRIMARY KEY NOT NULL...; grant select,update,insert,delete on db1.* to 'test'@'192.168.%'; flush privileges; 在 server-2 上建立远程访问的数据库和表

    1.8K20

    探索7个MAMP本地开发环境的高效替代软件

    这套环境使得开发者可以在本地计算机上构建和测试网站,而无需实时部署到服务器。...它集成了Apache或Nginx服务器、MySQL数据库、PHP和Composer等工具。它提供了快速的虚拟主机创建和配置,支持多版本的PHP和自动化的SSL设置。...它提供了一个完整的、统一的虚拟开发环境,无需在本地机器上安装PHP、Web服务器或任何其他服务器软件。优点:提供统一的开发环境,无需在本地安装额外的服务器软件。...通过运行一个简单的命令,开发者可以快速启动一个用于开发的Web服务器。这个内置的Web服务器非常适合小型项目或者在开发过程中进行快速测试。优点:无需额外安装,通过简单的命令即可启动。...一个良好的开发环境可以提高开发效率,减少部署时的问题,并促进团队间的协作。

    73900

    🦣PHP凭啥被称为世界上最好的语言?这些真相你该知道

    在代码执行效率上不断优化,在框架拓展性方面深度挖掘,在与新兴技术的融合上大步迈进,全方位地颠覆着大众对它过往的认知。...在传统的 PHP 运行模式下,代码执行需要经过一系列复杂的解析与解释过程,这在一定程度上限制了运行速度。而 JIT 编译器的加入,能够在程序运行时将热点代码实时编译为机器码,直接在硬件层面执行。...以 Web 服务器处理大量并发请求为例,借助纤程,服务器能够在等待 I/O 操作(如数据库查询、文件读取等)的过程中,转而处理其他请求,而无需像传统方式那样等待操作完成,极大地提高了服务器的并发处理能力...从店铺搭建、商品管理、订单处理到支付结算等一系列核心功能,都能在 PHP - Laravel 的支持下高效运行。...同时,PHP 对各类数据库,如 MySQL、MariaDB 等,有着良好的兼容性与高效的操作能力,能够高效地存储和管理电商平台海量的商品数据与用户信息。

    9700

    【Laravel系列4.6】

    事务 对于数据库来说,事务操作是非常经典而且也很实用的一个技术。具体事务是干什么的我们就不多说了,毕竟这也不是数据库知识普及的文章。在电商、金融类应用中,事务是非常重要的功能,也是必须的能力。...在 Laravel 中操作事务可以说是简单到没朋友。...PDO 属性设置 来填坑了,在【Laravel系列4.2:查询构造器】https://mp.weixin.qq.com/s/vUImsLTpEtELgdCTWI6k2A中,我们说过一个问题,那就是查询构造器查询出来的结果都是...不要着急,想想 PDO 在什么地方还能决定输出的结果,提示一下 PDOStatement 最后要执行什么。...找到 laravel/framework/src/Illuminate/Database/Connection.php 中的 select() 方法,也就是 原生语句 执行的地方。

    1.4K30

    MySQL复制实战宝典:教你如何秒变数据迁移大师,轻松应对各种复杂场景!

    二、读写分离 场景描述:在高并发的数据库应用场景中,读写分离是一种常见的优化手段。通过将读操作和写操作分离到不同的服务器上,可以提高系统的吞吐量和响应速度。...实现方式:配置主从复制后,所有的写操作(如INSERT、UPDATE、DELETE等)都在主服务器上执行,而所有的读操作(如SELECT等)都在从服务器上执行。...此外,MySQL复制还可以用于数据合并,将不同来源的数据整合到一个数据库中。 四、数据分析与报表生成 场景描述:在数据分析领域,实时或近实时的数据访问对于生成准确的报表和进行业务决策至关重要。...实现方式:配置主从复制后,可以在从服务器上创建用于数据分析和报表生成的视图、索引和存储过程等对象。这样,分析人员可以在从服务器上执行查询和分析操作,而无需访问主服务器。...六、链式级联复制与分布式数据库 场景描述:在分布式数据库系统中,数据经常被分片到不同的服务器上。

    10910

    MySQL体系结构与参数文件及查询优化器详解

    参数,如果运行的SQL语句没有使用索引,则会把这条SQL语句记录到慢查询日志中 例如 #一个会话窗口,实时查看日志 tail -f /usr/local/mysql/data/master01-slow.log...开启这个查询日志一般都是用于排除一些异常才会开启。 2.2.4 二进制日志文件 二进制日志binary log记录了对MySQL数据库执行更改的所有操作,但不包括select和show这类操作。...套接字文件 套接字文件:在unix系统下本地连接MySQL可以采用unix域套接字方式,这种方式需要一个套接字(socket)文件,其位置和名称由参数socket控制,一般在/tmp目录下,名为mysql.sock...4、insert buffer merge: innodb使用insert buffer” 欺骗”数据库:对于为非唯一索引,辅助索引的修改操作并非实时更新索引的叶子页,而是把若干对同一页面的更新缓存起来做合并...5.4 查询执行引擎 在解析和优化阶段,mysql将生成查询对应的执行计划,mysql的查询执行引擎则根据这个执行计划来完成整个查询。

    71110

    在Laravel中使用MongoDB的方法示例

    MongoDB实用场景 产品用户访问日志,点击埋点统计信息 业务系统环境参数配置信息 业务系统运行时日志,如laravel.log,nginx.log 使用Homebrew在macoOS安装MongoDB...命令行创建MongoDB数据库 macOS中,在命令行执行mongo开启MongoDB Shell ....注意只有viewers中存在collection时, 上面结果才会显示viewers use viewers; 使用数据库后,需要创建colleciton db.ad_clicks.insert({"ip...DB中查询MongoDB 使用了Laravel-MongoDB扩展,可以基于Eloquent与Query Builder操作MySQL一样的数据php artisan thinker/ / 查询ad_clicks...ORM中查询MongoDB 在项目中,创建一个Model php artisan make:model Models/AdClick 修改继承父类和数据库连接,AdClick.php ... use

    1.8K30
    领券