Laravel 执行的SQL(Laravel执行原生SQL语句)
在使用Laravel框架进行开发时,有时我们需要执行原生的SQL语句来完成一些复杂或特定的操作。Laravel提供了多种方法来执行原生SQL语句,介绍几种常见的方法,并提供相应的代码示例。
1. 使用DB facade
Laravel的DB
facade提供了多种方法来执行原生SQL查询。以下是一些常用的示例:
1.1 执行查询
php
use IlluminateSupportFacadesDB;</p>
<p>// 执行SELECT查询
$results = DB::select('SELECT * FROM users WHERE id = ?', [1]);</p>
<p>foreach ($results as $row) {
echo $row->name;
}
1.2 执行插入
php
use IlluminateSupportFacadesDB;</p>
<p>// 执行INSERT查询
DB::insert('INSERT INTO users (name, email) VALUES (?, ?)', ['John Doe', 'john@example.com']);
1.3 执行更新
php
use IlluminateSupportFacadesDB;</p>
<p>// 执行UPDATE查询
DB::update('UPDATE users SET name = ? WHERE id = ?', ['Jane Doe', 1]);
1.4 执行删除
php
use IlluminateSupportFacadesDB;</p>
<p>// 执行DELETE查询
DB::delete('DELETE FROM users WHERE id = ?', [1]);
2. 使用查询构建器
虽然查询构建器主要用于构建SQL查询,但也可以用来执行原生SQL语句。
2.1 执行原生SQL查询
php
use IlluminateSupportFacadesDB;</p>
<p>// 使用查询构建器执行原生SQL查询
$results = DB::statement('SELECT * FROM users WHERE id = ?', [1]);</p>
<p>foreach ($results as $row) {
echo $row->name;
}
2.2 执行原生SQL插入
php
use IlluminateSupportFacadesDB;</p>
<p>// 使用查询构建器执行原生SQL插入
DB::statement('INSERT INTO users (name, email) VALUES (?, ?)', ['John Doe', 'john@example.com']);
3. 使用原生PDO连接
如果你需要更底层的控制,可以直接使用Laravel提供的PDO连接。
3.1 获取PDO连接
php
use IlluminateSupportFacadesDB;</p>
<p>// 获取PDO连接
$pdo = DB::connection()->getPdo();
3.2 执行查询
php
use IlluminateSupportFacadesDB;</p>
<p>// 获取PDO连接
$pdo = DB::connection()->getPdo();</p>
<p>// 准备SQL语句
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');</p>
<p>// 绑定参数并执行
$stmt->execute([1]);</p>
<p>// 获取结果
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);</p>
<p>foreach ($results as $row) {
echo $row['name'];
}
3.3 执行插入
php
use IlluminateSupportFacadesDB;</p>
<p>// 获取PDO连接
$pdo = DB::connection()->getPdo();</p>
<p>// 准备SQL语句
$stmt = $pdo->prepare('INSERT INTO users (name, email) VALUES (?, ?)');</p>
<p>// 绑定参数并执行
$stmt->execute(['John Doe', 'john@example.com']);
Laravel提供了多种方法来执行原生SQL语句,包括使用DB
facade、查询构建器和直接使用PDO连接。根据具体的需求选择合适的方法,可以让你的开发更加灵活和高效。希望的示例对你有所帮助。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/68280.html<