laravel支援什麼資料庫
laravel支援四種資料庫:1、MySQL,一個關聯式資料庫管理系統;2、PostgreSQL,一個「物件-關聯」型資料庫管理系統;3、SQLite,一款輕型的關聯式資料庫管理系統;4、SQL Server,一款關係型資料庫管理系統。
本教學操作環境:windows7系統、Laravel6版、Dell G3電腦。
Laravel 支援原生的 SQL 查詢、流暢的查詢建構器 和 Eloquent ORM 這些操作在各種資料庫後台與資料庫的互動變得非常簡單。
目前Laravel 支援以下四個資料庫:
MySQL 5.7 :一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,屬於Oracle 旗下產品。
PostgreSQL 9.6 :一個特性非常齊全的自由軟體的物件-關聯式資料庫管理系統,是以加州大學電腦系開發的POSTGRES,4.2版本為基礎的物件關係型資料庫管理系統。
SQLite 3.8.8 :一款輕型的資料庫,是遵守ACID的關聯式資料庫管理系統,它包含在一個相對小的C函式庫中。
SQL Server 2017 :Microsoft 公司推出的關係型資料庫管理系統
##設定
SQLite 設定
在使用touch database/database.sqlite
一類的建立指令,建立了一個新的SQLite 資料庫之後,你就可以使用資料庫的絕對路徑,配置環境變數來指向這個新建立的資料庫:DB_CONNECTION=sqlite DB_DATABASE=/absolute/path/to/database.sqlite
DB_FOREIGN_KEYS=true
URLs 形式配置
通常,資料庫連線使用多個設定值,例如host
、database
、username、password
等。這些配置值中的每一個都有其對應的環境變數。這意味著在生產伺服器上配置資料庫連接資訊時,需要管理多個環境變數。 一些託管資料庫提供者(如 Heroku)提供單一資料庫“URL”,該 URL 在單一字串中包含資料庫的所有連接資訊。範例資料庫 URL 可能如下所示:mysql://root:password@127.0.0.1/forge?charset=UTF-8
这些 URLs 通常遵循标准模式约定: driver://username:password@host:port/database?options
'mysql' => [ 'read' => [ 'host' => [ '192.168.1.1', '196.168.1.2', ], ], 'write' => [ 'host' => [ '196.168.1.3', ], ], 'sticky' => true, 'driver' => 'mysql', 'database' => 'database', 'username' => 'root', 'password' => '', 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', ],
$users = DB::connection('foo')->select(...);
$pdo = DB::connection()->getPdo();
执行原生 SQL 查询
一旦配置好数据库连接后,便可以使用 DB facade 门面运行查询。DB facade 为每种类型的查询提供了相应的方法:select,update,insert,delete 和 statement。
执行 Select 查询
你可以使用 DB Facade 的 select 方法来运行基础的查询语句:
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\DB; 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 方法将始终返回一个 array 数组,数组中的每个结果都是一个 stdClass 对象,可以像下面这样访问结果中的数值:
foreach ($users as $user) { echo $user->name; }
使用命名绑定
除了使用 ? 表示参数绑定外,你还可以使用命名绑定的形式来执行一个查询:
$results = DB::select('select * from users where id = :id', ['id' => 1]);
执行 Insert 语句
你可以使用 DB Facade 的 insert 方法来执行 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');
运行未预处理的语句
有时你可能希望在不绑定任何值的情况下运行语句。对于这些类型的操作,可以使用 DB Facade 的 unprepared 方法:
DB::unprepared('update users set votes = 100 where name = "Dries"');
请注意,这些语句不会像上面的语句那样绑定值。它们可以打开你的应用程序进行 SQL 注入,应该非常小心地使用。
隐式提交
在事务中使用 DB 外观的 statement 和 unprepared 方法时,必须小心避免导致 [隐式提交] 的语句 (https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html)。 这些语句将导致数据库引擎间接提交整个事务,从而使 Laravel 不知道数据库的事务级别。这种语句的一个例子是创建数据库表:
DB::unprepared('create table a (col varchar(1) null)');
请参考 MySQL 手册中的触发隐式提交的所有语句列表。
监听查询事件
如果你想监控程序执行的每一个 SQL 查询,你可以使用 listen 方法。这个方法对于记录查询或调试非常有用。你可以在 服务提供器 中注册你的查询监听器:
<?php namespace App\Providers; use Illuminate\Support\Facades\DB; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * 注册所有应用的服务 * * @return void */ public function register() { // } /** * 引导所有应用的服务 * * @return void */ public function boot() { DB::listen(function ($query) { // $query->sql // $query->bindings // $query->time }); } }
数据库事务
你可以使用 DB facade 的 transaction 方法在数据库事务中运行一组操作。如果事务的闭包 Closure 中出现一个异常,事务将会回滚。如果事务闭包 Closure 执行成功,事务将自动提交。一旦你使用了 transaction, 就不必担心手动回滚或提交的问题:
DB::transaction(function () { DB::table('users')->update(['votes' => 1]); DB::table('posts')->delete(); });
处理死锁
transaction 方法接受一个可选的第二个参数,该参数用来表示事务发生死锁时重复执行的次数。一旦定义的次数尝试完毕,就会抛出一个异常:
DB::transaction(function () { DB::table('users')->update(['votes' => 1]); DB::table('posts')->delete(); }, 5);
手动使用事务
如果你想要手动开始一个事务,并且对回滚和提交能够完全控制,那么你可以使用 DB Facade 的 beginTransaction 方法:
DB::beginTransaction();
你可以使用 rollBack 方法回滚事务:
DB::rollBack();
最后,你可以使用 commit 方法提交事务:
DB::commit();
技巧:DB facade 的事务方法同样适用于 查询构造器 和 Eloquent ORM。
连接到数据库 CLI
如果要连接到数据库的 CLI,可以使用 db Artisan 命令:
php artisan db
如果需要,可以指定数据库连接名称以连接到不是默认连接的数据库连接:
php artisan db mysql
【相关推荐:laravel视频教程】
以上是laravel支援什麼資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

在使用CraftCMS開發網站時,常常會遇到資源文件緩存的問題,特別是當你頻繁更新CSS和JavaScript文件時,舊版本的文件可能仍然被瀏覽器緩存,導致用戶無法及時看到最新的更改。這個問題不僅影響用戶體驗,還會增加開發和調試的難度。最近,我在項目中遇到了類似的困擾,經過一番探索,我找到了wiejeben/craft-laravel-mix這個插件,它完美地解決了我的緩存問題。

想要學習 Laravel 框架,但苦於沒有資源或經濟壓力?本文為你提供了免費學習 Laravel 的途徑,教你如何利用網絡平台、文檔和社區論壇等資源,從入門到掌握,為你的 PHP 開發之旅奠定堅實基礎。

Laravel 提供了一個全面的 Auth 框架,用於實現用戶登錄功能,包括:定義用戶模型(Eloquent 模型)創建登錄表單(Blade 模板引擎)編寫登錄控制器(繼承 Auth\LoginController)驗證登錄請求(Auth::attempt)登錄成功後重定向(redirect)考慮安全因素:哈希密碼、防 CSRF 保護、速率限制和安全標頭。此外,Auth 框架還提供重置密碼、註冊和驗證電子郵件等功能。詳情請參閱 Laravel 文檔:https://laravel.com/doc

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

在面向初学者的 Laravel 框架版本选择指南中,本文深入探討了 Laravel 的版本差異,旨在協助初學者在眾多版本之間做出明智的選擇。我們將重點介紹每個版本的關鍵特徵、比較它們的優缺點,並提供有用的建議,幫助新手根據他們的技能水準和項目需求挑選最合適的 Laravel 版本。對於初學者來說,選擇一個合適的 Laravel 版本至關重要,因為它可以顯著影響他們的學習曲線和整體開發體驗。

Laravel框架內置了多種方法來方便地查看其版本號,滿足開發者的不同需求。本文將探討這些方法,包括使用Composer命令行工具、訪問.env文件或通過PHP代碼獲取版本信息。這些方法對於維護和管理Laravel應用程序的版本控制至關重要。

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。
