【发布时间】:2017-08-18 19:20:44
【问题描述】:
我需要接收到变量的 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 数据库连接不总是像 PDO 那样经常建立第二个 php 连接或写下数据库凭据。如果存在从 laravel 到 DBS 的 PDO 连接,那么获取到 php 对我来说也很有用。
DB::connection()->name
返回一个 DB 的名称,但那是没有连接的:/
我一直在寻找它,但没有找到解决方案,有人可以帮我找到正确的答案吗? (也许不重要,但我用的是mysql)
【问题讨论】:
-
你可以使用
\DB::statement('raw query here');。 -
但是如何从这个语句中获取一个结果(或结果集)呢?或者甚至可以按照我的要求获得这种连接?但是感谢您的贡献,我会仔细研究该语句语法..我发现了另一个好东西,但我的问题没有答案: $results = DB::select( DB::raw("SELECT * FROM some_table WHERE some_col = '$someVariable'") );
-
不知道这是否有用:
DB::connection()->getPdo() -
您将无法以这种方式检测连接错误,因为只有连接成功时才会使用暴露 PDO 实例的外观。
标签: php mysql sql laravel laravel-5