Laravel 能使用原生 SQL、流畅的查询构造器 和 Eloquent ORM 在各种数据库后台与数据库进行非常简单的交互。当前 Laravel 支持四种数据库:
- MySQL 5.6+
- PostgreSQL 9.4+
- SQLite 3.8.8+
- SQL Server 2017+
1. 数据库配置
数据库的配置文件根目录的.env
文件
DB_CONNECTION=mysql//数据库类型
DB_HOST=127.0.0.1
DB_PORT=3306 //端口号
DB_DATABASE=//数据库名
DB_USERNAME=//数据库用户名
DB_PASSWORD=//数据库密码
2. 增删改查
2.1 查询
演示地址:http://www.php520.vip/dbselect
public function get(){
//select * from article
$res=DB::select('select * from article where id >5');
echo '<pre>';
print_r($res);
}
2.2 更新
演示地址:http://www.php520.vip/dbupdate
//数据库更新操作(原生)
public function update() {
$res=DB::update('update article set title="我是最爱php的" where id=3');
var_dump($res);//返回更新的行数(0和1)
}
2.3 删除
演示地址:http://www.php520.vip/dbdelete
//数据库删除操作(原生)
public function delete() {
$res=DB::delete('delete from article where id=6');
var_dump($res);//返回更新的行数(0和1)
}
2.4 增加
演示地址:http://www.php520.vip/dbinsert
//数据库新增操作(原生)
public function insert() {
$res=DB::insert('insert article(`title`) values("我是最爱php的yoyoyo")');
var_dump($res);//返回时布尔值(true/false)
}
2.5 控制器完整代码
<?php
/**
* @Author: Nicola
* @Date: 2020-06-04 17:35:44
* @email: admin@nicola.com
* @Last Modified by: Nicola
* @Last Modified time: 2020-06-05 02:06:35
*/
// 命名空间:和目录对应
// 类名称要和文件名称一致
namespace App\Http\Controllers;
//引入数据库DB类
use Illuminate\Support\Facades\DB;
/**
*继承类
*/
class Home extends Controller
{
public function index() {
// return 'www.php.cn';
// 输出一个视图(view是laravel内核定义好)
$time=date('Y-m-d H:i:s');
$res=DB::select('select * from article');
// $name='nicola';
// echo '<pre>';
// $data=[];
// $data['time']=$time;
// $data['name']='laravel基础教学';
$datas=[];
foreach ($res as $key => $value) {
$datas[]=(array)$value;
}
$data['result']=$datas;
// echo '<pre>';
// print_r($data);
// echo $data;
// return view('test',['time'=>$time,'name'=>$name]);
return view('test',$data);
// return view('test')->with('time',$time)->with('name',$name);
}
//数据库查询(原生)
public function get(){
//select * from article
$res=DB::select('select * from article where id >5');
echo '<pre>';
print_r($res);
}
//数据库更新操作(原生)
public function update() {
$res=DB::update('update article set title="我是最爱php的" where id=3');
var_dump($res);//返回更新的行数(0和1)
}
//数据库新增操作(原生)
public function insert() {
$res=DB::insert('insert article(`title`) values("我是最爱php的yoyoyo")');
var_dump($res);//返回时布尔值(true/false)
}
//数据库删除操作(原生)
public function delete() {
$res=DB::delete('delete from article where id=6');
var_dump($res);//返回更新的行数(0和1)
}
}
2.6 路由完整代码
<?php
/**
* @Author: Nicola
* @Date: 2020-06-03 00:01:11
* @email: admin@nicola.com
* @Last Modified by: Nicola
* @Last Modified time: 2020-06-05 02:03:35
*/
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
// Route::get('路径','函数')
Route::get('/', function () {
return view('welcome');//视图 视图引擎
// echo "欢迎光临php中文网";
// echo date('Y-m-d H:i:s');
});
//访问控制器中某个类的方法,请求映射到控制器中
Route::get('/home','Home@index');
Route::get('/dbselect','Home@get');
Route::get('/dbupdate','Home@update');
Route::get('/dbinsert','Home@insert');
Route::get('/dbdelete','Home@delete');
2.7 视图完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>测试</title>
<link rel="stylesheet" href="layui/css/layui.css" />
</head>
<body>
<h3>利用原生查询语句获取数据表内容</h3>
<table class="layui-table">
<thead>
<tr>
<td>ID</td>
<td>标题</td>
<td>备注</td>
</tr>
</thead>
<tbody>
<?php foreach ($result as $key=>
$value) { ?>
<tr>
<td><?php echo $value['id']; ?></td>
<td><?php echo $value['title']; ?></td>
<td><?php echo $value['beizhu']; ?></td>
</tr>
<?php }?>
</tbody>
</table>
</body>
</html>
3. 返回数据到视图渲染
演示地址:http://www.php520.vip/home
4. 总结
约定优于配置(也称作按约定编程),框架同样采用“约定优于配置”的方法。这基本上意味着,如果遵循了不同组件的命名约定,就几乎不必关注配置工作(熟悉他的框架,直接调用相关的功能)。Laravel 框架自身就会处理许多低级的细节,而且一切都会神奇地开始工作。如果一直使用传统的 PHP 编程,这在一开始可能会感到难以忍受。但一旦尝到了甜头,就再也不想回头了。