如何使用 Laravel 框架执行 MySQL 查询?

Posted

技术标签:

【中文标题】如何使用 Laravel 框架执行 MySQL 查询?【英文标题】:How can I perform MySQL queries using the Laravel framework? 【发布时间】:2015-05-02 16:54:00 【问题描述】:

所以我最近研究了 Laravel 框架,就像我几个月以来一直想做的那样,到目前为止它看起来很棒,并且里面有一些非常有用的东西。

但是,我一直在尝试实际使用数据库查询,以便我可以使用真实数据,但是当我尝试这样做时,并没有取得太大的成功。

我已经配置了\config\database.php mysql 部分,然后尝试使用DB::,我得到的只是一个错误:

控制器中的 DB 类不存在

我已经阅读了所有文档,但一无所获

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
use DB;

class SongsController extends Controller 

        public function getSongs()
        $songs = DB::table('songs')->get();

                return $songs;

              


查看:

<?php  
        foreach ($songs as $song)
    var_dump($song->song);
        

我的mysql在\config\database.php中:

'mysql' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'database'  => env('DB_DATABASE', 'songs'),
    'username'  => env('DB_USERNAME', 'root'),
    'password'  => env('DB_PASSWORD', 'password'),
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
],

【问题讨论】:

我们能看到一小段代码展示了这个问题吗?我想通过查看您的代码,Laravel 开发人员将能够快速说出问题所在。 你在使用 .env 文件吗? ...如果您拒绝访问 'homestead'@'localhost' 它必须设置在某个地方 不,甚至不确定那是什么,我只是想在我的系统上运行的 MySQL 和 Laravel 之间建立连接。 查看根目录下是否有 .env 文件(不是 .env.example,只是 .env)。 哦,是的,我可以看到一个 .env 文件,为什么?我应该使用它来配置我的连接而不是 \config\database.php 还是什么? 【参考方案1】:

在你的 mysql 配置中:

'database'  => env('DB_DATABASE', 'songs'),

它说:看看是否设置了环境变量,如果它存在于你的 .env 文件中(在你的根目录中),使用它,如果没有,使用默认的“歌曲”。

http://laravel.com/docs/5.0/configuration#environment-configuration

【讨论】:

啊,所以如果我将 .env 中的所有配置都设置为这样,它将使用 \config\database 中设置的内容吗? DB_DATABASE= DB_USERNAME= DB_PASSWORD= 它将使用一个空的数据库、用户名和密码,我认为......就像你这样做 $database = "";如果您不需要使用它,最好删除该文件:)【参考方案2】:

您需要添加使用数据库;在文件的顶部。记住 Laravel5 使用命名空间。

<?php namespace App\Http\Controllers;
use DB;

【讨论】:

已经尝试过了,我得到了拒绝访问状态。 SQLSTATE[HY000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝(使用密码:YES) 我认为你错误配置了 mysql(homestead 是配置文件中的默认用户/数据库)

以上是关于如何使用 Laravel 框架执行 MySQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章

PHP笔记-laravel框架中Eloquent ORM实现增删改查

如何使用 Laravel 框架更新 MySQL 中的 json 数据?

laravel DB 执行 mysql函数或者字段

Laravel框架——增删改查

laravel框架——增删改查

Laravel框架——增删改查