当前位置:首页 » 操作系统 » laravel数据库连接

laravel数据库连接

发布时间: 2022-12-14 07:45:22

㈠ laravel 操作数据库需要判断是否成功吗

一、读/写连接

有时您可能希望使用一个SELECT语句的数据库连接,,另一个用于插入、更新和删除语句。Laravel使这微风,将始终使用正确的连接是否使用原始查询,查询生成器或雄辩的ORM。

如何读/写连接应该配置,让我们看看这个例子:
复制代码 代码如下:
'mysql' => array('read' => array('host' => '192.168.1.1'),'write' => array('host' => '196.168.1.2'),'driver' => 'mysql','database' =>'database','username' => 'root','password' => '','charset' => 'utf8','collation' => 'utf8_unicode_ci','prefix' => '')

注意,两个键添加到配置阵列:读和写。这两个键有数组值包含一个关键:主机。其余的读写数据库选项从主mysql连接将合并后的数组。所以,我们只需要将物品放入读取和写入数组如果我们希望覆盖主要数组中的值。所以,在这种情况下,192.168.1.1将被用作“读”连接,while192.168.1.2将被用作“写”连接。数据库凭证、前缀、字符集和所有其他选项在主mysql数组将跨两个共享连接。

二、运行查询

一旦你已经配置了数据库连接,你可以使用DB运行查询类。

运行一个Select查询

复制代码 代码如下:
$results = DB::select('select * from users where id = ?', array(1));

结果的选择方法总是返回一个数组。

运行一个Insert语句

复制代码 代码如下:
DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));

运行一个更新语句

复制代码 代码如下:
DB::update('update users set votes = 100 where name = ?', array('John'));

运行一个Delete语句

复制代码 代码如下:
DB::delete('delete from users');

注意:update和delete语句返回的行数的影响操作。

运行一个通用声明

复制代码 代码如下:
DB::statement('drop table users');

查询事件监听

你可以查询事件监听使用DB::听方法:

复制代码 代码如下:
DB::listen(function($sql, $bindings, $time){ //});

三、数据库事务

运行在一个数据库事务的一组操作,您可以使用事务方法:
复制代码 代码如下:
DB::transaction(function(){ DB::table('users')->update(array('votes'
=> 1)); DB::table('posts')->delete();});

注意:在事务抛出的任何异常关闭将导致自动事务将回滚

有时你可能需要开始一个事务:

复制代码 代码如下:
DB::beginTransaction();

你可以通过回滚事务回滚方法:

复制代码 代码如下:
DB::rollback();

最后,您可以通过提交方法:提交一个事务

复制代码 代码如下:
DB::commit();

四、访问连接

当使用多个连接,你可以访问它们通过DB::连接方法:

复制代码 代码如下:
$users = DB::connection('foo')->select(...);

你也可以访问原始的、潜在的PDO实例:
复制代码 代码如下:
$pdo = DB::connection()->getPdo();

有时你可能需要重新连接到一个给定的数据库:
复制代码 代码如下:
DB::reconnect('foo');

如果你需要断开从给定的数据库将超过底层PDO实例'smax_connections限制,使用断开连接方法:
复制代码 代码如下:
DB::disconnect('foo');

五、查询日志

默认情况下,Laravel日志保存在内存的所有查询运行当前的请求。然而,在某些情况下,例如当插入的行数,这可能会导致应用程序使用多余的内存。禁用日志,你可以使用disableQueryLog方法:

复制代码 代码如下:
DB::connection()->disableQueryLog();

o得到一组执行的查询,您可以使用getQueryLog方法:
复制代码 代码如下:
$queries = DB::getQueryLog();

㈡ 如何在新浪云sae上安装部署laravel5.1应用并测试数据库连接

1、创建SAE应用
首先进入新浪云SAE界面 http://sae.sina.com.cn/ :

点击“创建新应用”,在创建应用页面填写表单,开发语言选择php 5.6,选中“空应用”,然后点击“创建应用”:

这样在管理应用列表新增了一个“Laravel SAE”应用:

接下来我们点击“Laravel SAE”进入管理应用界面,选择左侧“代码管理”链接上传应用代码:

我们选择使用Git管理代码,点击“Git”按钮,页面跳转到Git安装指南页面:

通过该页面我们得知代码仓库是 https://git.sinacloud.com/laravelsae/ ,接下来我们就可以按照部署说明上传代码到SAE。
2、上传Laravel项目代码到SAE
这里我们选择Github上一个现成的项目 laravel5-on-sae ,该项目针对SAE对Laravel 5.1代码做了特定修改,我们下载其 项目包 并解压到本地。进入解压后的 laravel5-on-sae 目录,删除隐藏的文件夹 .git ,新建一个 config.yaml ,编辑其内容如下:
handle:
- rewrite: if (path ~ "^/$") goto "public/index.php"
- rewrite: if(!is_dir() && !is_file() && path~"^(.*)$") goto "public/index.php/$1"
编辑 .gitignore 文件,移除第一行 /vendor (否则使用Git命令忽略该目录,导致找不到/vendor/autoload.php而报错)。
编辑 config/app.php ,移除 providers 数组中的如下这行:
App\Providers\ViewComponentServiceProvider::class,
编辑 app/Providers/EventServiceProvider.php 内容如下:
<?php
namespace App\Providers;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
];
/**
* Register any other events for your application.
*
* @param \Illuminate\Contracts\Events\Dispatcher $events
* @return void
*/
public function boot(DispatcherContract $events)
{
parent::boot($events);
}
}
然后在 laravel5-on-sae 目录下执行如下命令:
git init
git remote add sae https://git.sinacloud.com/laravelsae/
git add .
git commit -am 'laravelsae'
git push sae master:1
最后一条命令需要输入的用户名和密码为安全邮箱和安全密码,而不是微博账号和密码。如已启用微盾动态密码,则密码应该是“安全密码”+“微盾动态密码”。
这样我们就可以成功提交代码到Laravel SAE应用。
在开始之前还需要在SAE中初始化Memcache,并且在Storage中新建一个域名为 laravel 的domain。
接下来我们在浏览器中访问 http://laravelsae.sinaapp.com/laravel ,页面显示如下:

说明代码部署成功!
3、测试数据库连接
要在SAE上连接数据库,首先我们需要点击左侧mysql初始化数据库:

选择“共享型MySQL”:

InnoDB目前只对企业开发,所以我们选择MyISAM引擎,然后点击初始化数据库。初始化成功后页面跳转到MySQL管理页面:

SAE中MySQL主机、端口、用户名及密码都用常量表示,我们在代码中也要使用这些常量对数据库进行设置,当然 laravel5-on-sae 这个项目已经为我们做好了设置,甚至配置了读写分离:

这里我去将 prefix 配置设置为 '' ,即不使用任何数据表前缀。
接下来我们对数据库进行测试,还是在MySQL管理页面我们点击“管理MySQL”,页面会跳转到MySQL数据库管理页面,实际上是一个phpMyAdmin页面:

在phpMyAdmin中我们创建一个数据表 posts 并插入两条记录:

接下来我们在项目代码中 routes.php 新增一条路由:
Route::get('database/test','DbController@test');
然后创建控制器 DbController ,编辑其内容如下:
<?php
namespace App\Http\Controllers;
use DB;
class DbController extends Controller{
public function test(){
$posts = DB::table('posts')->get();
dd($posts);
}
}
然后提交该代码到SAE项目:
git add .
git commit -m 'test'
git push sae master:1
在浏览器中访问 http://laravelsae.sinaapp.com/database/test

㈢ laravel框架各文件作用是什么之间什么关系

文件的文件夹

作用

/app/config/

配置应用程序的运行时规则、 数据库、 session等等。包含大量的用来更改框架的各个方面的配置文件。大部分的配置文件中返回的选项关联PHP数组。

/app/config/app.php

各种应用程序级设置,即时区、 区域设置(语言环境)、 调试模式和独特的加密密钥。

/app/config/auth.php

控制在应用程序中如何进行身份验证,即身份验证驱动程序。

/app/config/cache.php

如果应用程序利用缓存来加快响应时间,要在此配置该功能。

/app/config/compile.php

在此处可以指定一些额外类,去包含由‘artisan optimize’命令声称的编译文件。这些应该是被包括在基本上每个请求到应用程序中的类。

/app/config/database.php

包含数据库的相关配置信息,即默认数据库引擎和连接信息。

/app/config/mail.php

为电子邮件发件引擎的配置文件,即 SMTP 服务器,From:标头

/app/config/session.php

控制Laravel怎样管理用户sessions,即session driver, session lifetime。

/app/config/view.php

模板系统的杂项配置。

/app/controllers

包含用于提供基本的逻辑、 数据模型交互以及加载应用程序的视图文件的控制器类。

/app/database/migrations/

包含一些 PHP 类,允许 Laravel更新当前数据库的架构并同时保持所有版本的数据库的同步。迁移文件是使用Artisan工具生成的。

/app/database/seeds/

包含允许Artisan工具用关系数据来填充数据库表的 PHP 文件。

/app/lang/

PHP 文件,其中包含使应用程序易于本地化的字符串的数组。默认情况下目录包含英语语言的分页和表单验证的语言行。

/app/models/

模型是代表应用程序的信息(数据)和操作数据的规则的一些类。在大多数情况下,数据库中的每个表将对应应用中的一个模型。应用程序业务逻辑的大部分将集中在模型中。

/app/start/

包含与Artisan工具以及全球和本地上下文相关的自定义设置。

/app/storage/

该目录存储Laravel各种服务的临时文件,如session, cache, compiled view templates。这个目录在web服务器上必须是可以写入的。该目录由Laravel维护,我们可以不关心。

/app/tests/

该文件夹给你提供了一个方便的位置,用来做单元测试。如果你使用PHPUnit,你可以使用Artisan工具一次执行所有的测试。

/app/views/

该文件夹包含了控制器或者路由使用的HTML模版。请注意,这个文件夹下你只能放置模版文件。其他的静态资源文件如css, javascript和images文件应该放在/public文件夹下。

/app/routes.php

这是您的应用程序的路由文件,其中包含路由规则,告诉 Laravel 如何将传入的请求连接到路由处理的闭包函数、 控制器和操作。该文件还包含几个事件声明,包括错误页的,可以用于定义视图的composers。

/app/filters.php

此文件包含各种应用程序和路由筛选方法,用来改变您的应用程序的结果。Laravel 具有访问控制和 XSS 保护的一些预定义筛选器。

花了很多心思在建立和命名文件夹上,得到的就是一个具有良好的文件系统的应用程序。
在这里你得到了什么:MVC

㈣ laravel 必须要建默认数据库吗

我们安装wamp,并且使用mysql方式。用wamp自带的phpMyAdmin添加一个名字为laravel的数据库。
app/config目录下,database.php包含数据库的配置,打开并修改mysql部分为如下:

建立一个迁移
在cmd里面,定位到 laravel所在目录,执行如下命令:
php artisan migrate:make --create=articles
其中,--create=articles 就表示建立数据表
这样,在 app/database/migrations/目录下,会生成一个迁移文件。文件名是 时间编号+create_articles_table.php本例是:2015_01_25_144256_create_articles_table.php
修改迁移
打开文件,2015_01_25_144256_create_articles_table.php

里面类CreateAritclestable负责管理数据库,它的up方法调用Schema::create来建立一个数据表articles,默认已经包括一个自增的id和时间字段。
如红线所示,我们再添加两个字段title 和 text。
执行迁移
在cmd命令窗口,执行如下命令:
php artisan migrate
然后查看数据库laravel

㈤ Laravel框架怎么配置

Laravel框架怎么配置

分步阅读

框架下载好了,但是想要很好的使用,可能我们还有一些东西需要知道,这就是配置。和项目有关的配置是在 app/config 文件夹里,但是除了这里还有一些配置可能是我们需要的。作为一个基础教程,我就不一一介绍了,只是选择一些大家配置比较多的地方讲解一下。

app/config 中的配置说明

在 app/config 文件夹中经常配置的一般有两个文件:app.php 和 database.php 两个文件,他们一个是配置项目杂项的、一个是配置数据库的。下面我就里面的常用配置做一下解释: 先是 app.php 文件

其实 app.php 后面还有一些内容,但那些基本上不需要你修改。(只有添加第三方包的时候才有需要,我们会到时候再讲)
接下来介绍 database.php 文件

<?php
return array(
'fetch' => PDO::FETCH_CLASS,
'default' => 'meinv',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/proction.sqlite',
'prefix' => '',
),
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'meinv' => array( //这里就是上面例子里的默认连接数据库名,实际上是 mysql 数据库
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'pgsql' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
'sqlsrv' => array(
'driver' => 'sqlsrv',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'prefix' => '',
),
),
);
?>

㈥ 本地laravel框架怎么连接mysql数据库

本地安装好MYSQL数据库后怎么连接的解决方法如下: 1、连接名:任意输入一个名称 2、mysql连接:localhost或127.0.0.1 3、用户名:root 4、密码:你安装mysql时设置的密码 5、数据库:你要连接的数据库我,discuz好像有默认的数据库名,你可以看....

㈦ laravel的数据库是pdo吗

亲,laravel 是使用PDO 方式连接的数据库!~~

㈧ laravel 怎样连接sqlite数据库

https://github.com/5-say/larav ... 23L29 注意看 29 行,这个 demo 默认就是用的 sqlite。

㈨ 在laravel框架里面怎样访问数据库

配置完数据库连接,就可以使用DB类进行查询了。
查询
$results = DB::select('select * from users where id = ?', array(1));

select方法会以数组形式返回查询结果。
插入
DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));

更新
DB::update('update users set votes = 100 where name = ?', array('John'));

删除
DB::delete('delete from users');

注意:update和delete语句返回受影响的行数。
通用语句
DB::statement('drop table users');

监听Query事件
DB::listen(function($sql, $bindings, $time)
{
//
});

数据库事务
DB::transaction(function()
{
DB::table('users')->update(array('votes' => 1));
DB::table('posts')->delete();
});

注意:transaction闭包中的任何异常将会导致事务自动回滚。
有时候也许你想自己开启事务:
DB::beginTransaction();

你也可以自己回滚事务:
DB::rollback();

最后,你可以通过commit方法提交事务:
DB::commit();

多个数据库连接访问
当使用多个数据库连接时,可以通过DB::connection方法访问它们:
$users = DB::connection('foo')->select(...);

你可以通过PDO实例访问原生连接:
$pdo = DB::connection()->getPdo();

有时候你需要重连数据库:
DB::reconnect('foo');

如果因为超出PDO实例的最大连接数限制而要断开连接,使用disconnect方法:
DB::disconnect('foo');

查询日志
默认情况下,Laravel使用日志记录当前请求的所有数据库查询操作,但是某些时候,比如插入大量数据,会引起应用使用过量内存。为了关闭日志,可以使用disableQuery方法:
DB::connection()->disableQueryLog();

获取查询日志记录,可以用过getQuery方法:
$queries = DB::getQueryLog();

㈩ laravel 怎么设置数据库端口

本文实例讲述了Laravel执行migrate命令提示:No such file or directory的解决方法。分享给大家供大家参考,具体如下:

今天使用Laravel命令行工具操作数据库迁移操作时报错,提示mysql 2002错误,如图:

查看数据库配置没错呀,网站前台也可以打开,说明能连上,那是什么原因呢?

在Laravel5中,有两种办法解决:

1.增加一个数据库配置项
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock', 'prefix' => 'laravel_', 'strict' => false, ],
这里增加的一项是unix_socket,本机Mac上装的MAMP环境,路径是/Applications/MAMP/tmp/mysql/mysql.sock,查看自己路径的办法是在mysql中输入以下命令就可以看到:

show variables like '%sock%';

如下图所示:

2.修改.env配置

这个办法只能是临时修改,让migrate可以执行,然后必须改回来。
DB_HOST=localhost DB_CONNECTION=mysql DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=tanteng DB_PORT=8889
临时修改办法是把DB_HOST那里改成localhost:8889,也就是把端口号加上,再使用Laravel5的artisan命令执行migrate操作就可以了,但是操作完了要改回以前的写法,否则网站前台页面会打不开连不上数据库,提示错误:SQLSTATE[HY000] [2005] Unknown MySQL server host 'localhost:8889' (0)

好了,这样就解决了使用Laravel5的migrate报错的问题。

转自:小谈博客 http://www.tantengvip.com/2015/12/laravel-migrate-mysql-2000/

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

热点内容
台电安卓平板系统太低怎么办 发布:2025-05-15 05:20:00 浏览:507
安装了zlib编译报错 发布:2025-05-15 05:19:56 浏览:166
二分算法无序 发布:2025-05-15 05:18:22 浏览:28
网易我的世界服务器组件怎么安装 发布:2025-05-15 05:16:58 浏览:311
如何复制密码狗 发布:2025-05-15 05:15:28 浏览:737
c语言报告三 发布:2025-05-15 05:10:37 浏览:844
09压缩饼干 发布:2025-05-15 05:05:58 浏览:279
迭代法编程c 发布:2025-05-15 04:58:01 浏览:815
用什么dns服务器地址快 发布:2025-05-15 04:52:59 浏览:27
手机端so反编译 发布:2025-05-15 04:50:55 浏览:610