laravel 怎样连接sqlite3连接数据库数据库

经检测你所在的网络可能存在爬虫,因资源限制,我们只能拒绝你的请求。
如果你是推酷的用户,可以以继续访问使用。
如有疑问,可将IP信息发送到
请求解封。Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
这篇文章主要介绍了Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法,结合实例形式分析了Laravel数据库,模型及控制器的相关操作技巧,需要的朋友可以参考下
本文实例讲述了Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法。分享给大家供大家参考,具体如下:
前言:laravel创建数据库,实际可以手动创建,如古老的phpmyadmin 等均可以。
一、数据库连接:
在根目录(laravel5.1下面有个.env文件,如果没有则会有个.env.example然后将此文件修改成.env文件即可)
打开文件:
DB_HOST=127.0.0.1 //连接地址不使用localhost
DB_DATABASE=homestead //数据库名称(需要预先创建)
DB_USERNAME=root //登录名
DB_PASSWORD= //密码
这里我已经修改成我本地环境的了。
二、数据表创建
切到laravel 5.1的存放目录(项目目录)
然后运行:
php artisan make:migration create_articles_table --create=articles
会得到创建的文件:D:\laravel-v5.1.11\database\migrations
如果此时出现关于数据库的错误,请检测数据库连接是否正确,我就是在这里栽了一上午(我phpmyadmin被我给修改了,密码随便输入,但是原来是空的,以至于连接数据库的时候随便输入密码就进不去,但是phpmyadmin却可以)
打开新创建的文件,然后增加字段:
public function up() {
Schema::create('articles', function (Blueprint $table) { $table-&increments('id');// 主键 自增
$table-&string('title');
$table-&text('intro');
$table-&text('content');
$table-&timestamp('published_at');
$table-&timestamps(); // 自动创建的两个字段:created_at 和 updated_at });
然后执行:
php artisan migrate
就会自动创建表
三、创建modal
php artisan make:model Article
会在app目录下面创建Article.php文件。具体怎么使用这个model,暂时不清楚后期再来补
四、控制器
我这里手动创建的。(感觉很扯淡,个人感觉phpmyadmin或者navicat可以创建数据库),在D:\laravel-v5.1.11\app\Http\Controllers\Articles 下面创建了ArtilcesController.php控制器(我使用的是子文件下面的控制器方式,具体操作见前面文章)。
namespace App\Http\Controllers\A
use Illuminate\Http\R
use App\Http\R
use App\Http\Controllers\C
use App\A//这个必须有,引入model,不然无法获取数据库数据
class ArticlesController extends Controller{
public function index(){
// $articles = Article::with('category')-&latest()-&paginate(15);
$articles = Article::all();//获取所有数据
//print_r($articles);
$name = array(
"name"=&"123"
return view('articles.index', compact('articles'));//映射
Copyright &
All Rights Reserved &&&&&&之前我发了一篇博文,向大家展示PHP是如何使用MySQL原生API、MySQLi面向过程、MySQLi面向对象、PDO操作MySQL数据库的。本文介绍如何使用ORM操作数据库。
什么是ORM呢?引用网友的话:
ORM 对象关系映射,O(Object) 对象,在项目中就是实体,更加精确的来说就是数据Model,也可以说持久化类。R(Relation) 关系数据,M (Mapping)映射,将对象映射到关系数据,将关系数据映射到对象的过程。更加直观理解就是,ORM 就是以OOP思想,产生增删改查SQL语句。
相比PDO,ORM更适合快速开发项目,而不用写SQL语句。下面介绍几个好用的ORM。
下文均以版本1.0.2为例。
PHP 5.1+, 推荐PHP 5.4+ 且支持PDO.
至少安装了MySQL, MSSQL, SQLite其中一种.
Medoo支持Composer安装和直接下载。
使用Composer安装:
composer require catfan/Medoo
composer update
直接下载:
引入Medoo并配置数据库:
//使用Composer安装的这样引入
//require 'vendor/autoload.php';
// 直接下载的这样引入
require_once 'medoo.php';
$db = new medoo([
'database_type' =& 'mysql',
'database_name' =& 'test',
'server' =& 'localhost',
'username' =& 'root',
'password' =& ';,
'charset' =& 'utf8',
//可选:端口
'port' =& 3306,
//可选:表前缀
'prefix' =& '',
// PDO驱动选项 http://www.php.net/manual/en/pdo.setattribute.php
'option' =& [
PDO::ATTR_CASE =& PDO::CASE_NATURAL
如果是SQLite:
$database = new medoo([
'database_type' =& 'sqlite',
'database_file' =& 'my/database/path/database.db'
查询(Read):
select($table, $columns, $where) //获取所有记录
- table [string] 表名
- columns [string/array] 字段
- where (可选) [array] 查询条件
get($table, $columns, $where) //仅获取一条数据
select($table, $join, $columns, $where)
- table [string] 表名
- join [array] 关联查询,如果没有可以忽略
- columns [string/array] 字段
- where (可选) [array] 查询条件
$user = $db-&select('user', '*'); //返回所有数据
$user = $db-&get('user', '*'); //返回一条数据
$user = $db-&select('user','*', array('name ' =& 'joy'));
$user = $db-&select('user','name', array('age[&] ' =& 20));
$user = $db-&select('user',['name','age'], array('age[&=] ' =& 20));
新增(Create):
insert($table, $data)
$db-&insert('user', array('name'=& 't3', 'age'=&22)); //返回自增id
注意:如果数据里面包含子数组将会被serialize()序列化, 你可以使用json_encode()作为JSON存储.
更新(Update):
update($table, $data, $where)
$db-&update('user', array('name'=& 't5'), array('id'=& 23)); //返回受影响的行数
删除(Delete):
delete($table, $where)
$db-&update('user',
array('id'=& 23)); //返回受影响的行数
$db-&has('user',
array('id'=& 23)); //记录是否存在
$db-&count('user',
array('id[&]'=& 23)); //统计
$db-&max('user', 'age', array('gender'=& 1)); //最大值
$db-&min('user', 'age', array('gender'=& 2)); //最小值
$db-&avg('user',
'age', array('gender'=& 2)); //平均值
$db-&sum('user',
'age', array('gender'=& 2)); //求和
以上方法均支持第二个参数是$join,即关联查询。
$db-&action(function($db) {
$db-&insert(&account&, [
&name& =& &foo&,
&email& =& &&
$db-&delete(&account&, [
&user_id& =& 2312
}catch(Exception $e){
// 返回false就会回滚事务
可以直接使用SQL。
$data = $db-&query(&SELECT * FROM user&)-&fetchAll();
print_r($data);
$db-&query(&DELETE FROM user where name='t5' &);
直接使用PDO
Medoo是基于PDO的,所以可以直接调用PDO实例。
获取PDO实例:
$pdo = $db-&
接下来,可以使用PDO对象的所有方法了。
1.PDO::beginTransaction — 启动一个事务
2.PDO::commit — 提交一个事务
3.PDO::__construct — 创建一个表示数据库连接的 PDO 实例
4.PDO::errorCode — 获取跟数据库句柄上一次操作相关的 SQLSTATE
5.PDO::errorInfo — 获取错误信息
6.PDO::exec — 执行一条 SQL 语句,并返回受影响的行数
7.PDO::getAttribute — 取回一个数据库连接的属性
*8.PDO::getAvailableDrivers — 返回一个可用驱动的数组(了解即可)
*9.PDO::inTransaction — 检查是否在一个事务内(了解即可)
10.PDO::lastInsertId — 返回最后插入行的ID或序列值
11.PDO::prepare — 创建SQL的预处理,返回PDOStatement对象
12.PDO::query — 用于执行查询SQL语句,返回PDOStatement对象
13.PDO::quote — 为sql字串添加单引号
14.PDO::rollBack — 回滚一个事务
15.PDO::setAttribute — 设置属性
$stmt = $pdo-&query('select * from user limit 2'); //返回一个PDOStatement对象
//$row = $stmt-&fetch(); //从结果集中获取下一行,用于while循环
$rows = $stmt-&fetchAll(); //获取所有
print_r($rows);
$pdo-&beginTransaction();//开启事务处理
//PDO预处理以及执行语句...
$pdo-&commit();//提交事务
}catch(PDOException $e){
$pdo-&rollBack();//事务回滚
//相关错误处理
debug() 打印最终的SQL语句
在select、get、insert、update等方法前面加上debug()方法可以打印SQL语句,程序不会继续运行:
$user = $db-&debug()-&select('user', '*');
//SELECT &name&,&age& FROM &user& WHERE &age& &= 20
error() 返回最后一次操作的出错信息
$db-&select('user3', '*');
var_dump($db-&error());
log() 返回所有的SQL查询语句,不影响查询正常执行
$db-&select('user', '*');
var_dump($db-&log());
last_query() 和log()类似,但仅返回最后一条SQL查询语句,不影响查询正常执行
$db-&select('user', '*');
var_dump($db-&last_query());
Eloquent ORM
Eloquent ORM是Laravel框架使用的ORM。Laravel 的 Eloquent ORM 提供了更优雅的ActiveRecord 实现来和数据库的互动。 每个数据库表对应一个模型文件。
1、Guidebook - Medoo
2、Eloquent ORM笔记 - 飞鸿影~ - 博客园
(未完待续。。。)
阅读(...) 评论()[PHP][Laravel Test]单元化测试:数据库连接篇
本文适用于对 PHP 和 laravel 框架有一定了解并已经看完laravel入门视频:Laravel 5 Fundamentals 的初学者。本文内容主要讲解如何使用单元化测试工具测试应用。
相关视频 laravel test 已经下载到网盘如果还没看请先下载观看:
链接: /s/1sjXeLQH
提取密码:jjb5
1.在测试中最好的做法是区分开生产用数据库和测试用数据库,保证测试环境的稳定,避免相互干扰 。
在 config 中设置测试用数据库。
命令 php artisan migrate --database sqlite_testing 运行测试数据库
2.主目录下 phpunit.xml 文件下重写测试用环境配置。这里可以修改测试专用的数据库。
本篇配置测试用数据库,浅显易懂。
最新教程周点击榜
微信扫一扫&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 sqlite3连接数据库 的文章

 

随机推荐