如何获得laravel DB连接到PHP连接?

时间:2017-03-26 00:10:04

标签: php mysql sql laravel laravel-5

我需要接收到变量的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“ - &gt;”语法)

我需要得到laravel数据库连接,并不总是经常建立第二个PHP连接,如PDO或写下数据库凭据。如果存在从laravel到DBS的PDO连接,那么为我获取php也很有用。

DB::connection()->name

返回DB的名称,但没有连接:/

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

2 个答案:

答案 0 :(得分:3)

您可以在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 doc

答案 1 :(得分:1)

试试这个:

$pdo = $eloquentConnection->getConnection()->getRawPdo();

干杯