如何使用DB Facades访问数据库?

时间:2019-03-04 08:45:51

标签: php eloquent

对于the documentation,我们可以执行以下操作来运行原始查询:

use Illuminate\Support\Facades\DB;

DB::select('select * from users where id = :id', ['id' => 1]);

但是我无法在文档中找到一种方法来初始化我的数据库以执行该查询。

我正在使用PHP 7.3(无框架)进行雄辩地工作。在哪里可以将数据库初始化为雄辩的?

我已经在文档中找到了使用\Capsule\Manager来实现此目的的方法,如本链接中的自述文件所示,但是在使Db::select正常工作时没有任何方法可以使用,如何正确配置呢?

我正在寻找类似的东西吗?

DB::init([
    'driver'    => 'mysql',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => ''
])

2 个答案:

答案 0 :(得分:0)

您为雄辩的语言编写了错误的语法

  

select方法用于当前天中表的选择列名称

$users = DB::table('users')->select('name', 'email as user_email')->where('id',$id)->get();

或使用

db::raw('select * from users where id = :id', ['id' => 1])

答案 1 :(得分:0)

我找到了另一种直接使用胶囊管理器使用原始查询的方法:

use Illuminate\Database\Capsule\Manager as DB;

$capsule = new DB;
$capsule->addConnection([
    'driver' => 'mysql',
    'host' => DB_SERVER,
    'database' => DB_DATABASE,
    'username' => DB_SERVER_USERNAME,
    'password' => DB_SERVER_PASSWORD,
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => '',
    ]);
$capsule->setAsGlobal();
$capsule->bootEloquent();

$test = DB::select('select * from products where products_id = :id', ['id' => 19536]);