我需要接收到变量的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)
答案 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();
干杯