如何获得laravel DB连接到PHP连接? [英] How to get laravel DB connection to php connection?

查看:251
本文介绍了如何获得laravel DB连接到PHP连接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要接收与变量的laravel DB连接,以对数据库提出具体的纯SQL php要求.所需的代码:

<?php 
// this is not working
$conn = DB::connection();

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

所需结果:成功连接"

之所以需要它,是因为我有非常复杂的SQL要求,我需要进行一个查询,而不要使用laravel查询语法(我认为这是更好的方法,但是我有复杂的查询,并且需要使用纯查询文本来执行,不是laravel->"语法)

我需要获得laravel DB连接,以便不总是像PDO那样建立第二个php连接或写下DB凭证.如果存在从laravel到DBS的PDO连接,那么对我来说也可以使用php.

DB::connection()->name

返回数据库的名称,但是没有连接:/

我一直在寻找它,但是找不到解决方案,有人可以帮我找到正确的答案吗? (也许这并不重要,但我使用的是mysql)

解决方案

您可以根据需要在laravel中使用原始查询来执行查询.如果仍然需要连接实例,则可以创建一个类并实现ConnectionResolverInterface:

use Illuminate\Database\ConnectionResolverInterface as Resolver
class connection implements Resolver {

}

然后您可以建立连接:

$connector = new connection();
$connection = $connector->connection();

如果您正在使用模型连接,则可以通过以下方式获得连接:

$user = new User();
$user->getConnection();

还可以使用ConnectionFactory建立新连接:

$connection = new Illuminate\Database\Connector\ConnectionFactory();

有关更多信息,请参见 laravel API文档

I need to receive laravel DB connection to variable to make concrete pure SQL php demands on a database. Desired code:

<?php 
// this is not working
$conn = DB::connection();

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Desired result: "Connected successully"

I need it because I have very complex SQL demands that I need to put in one query, not using laravel query syntax (I believe it is better approach, but I have complex queries and need to use pure query text to execute, not laravel "->" syntax)

I need to get laravel DB connection to not always often establish second php connection like with PDO or writing down DB credentials. If PDO connection to DBS from laravel exists, it could be useful to obtain to php for me too.

DB::connection()->name

returns a name of DB, but thats no connection :/

I was looking for it but nowhere found solution for that, could someone help me find correct answer please? (maybe it is not important, but I use mysql)

解决方案

You can use raw query in laravel for executing queries as you wish. If you need connection instance anyway you can create a class and implement ConnectionResolverInterface:

use Illuminate\Database\ConnectionResolverInterface as Resolver
class connection implements Resolver {

}

then you can get connection:

$connector = new connection();
$connection = $connector->connection();

If you're using your model connection you can get connection this way:

$user = new User();
$user->getConnection();

Also you can make a new connection by using ConnectionFactory:

$connection = new Illuminate\Database\Connector\ConnectionFactory();

for more information you can see laravel API doc

这篇关于如何获得laravel DB连接到PHP连接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆