相关疑难解决方法(0)

如何在Laravel 5中执行查询?DB :: getQueryLog()返回空数组

我正在尝试查看查询的日志,但DB::getQueryLog()只是返回一个空数组:

$user = User::find(5);
print_r(DB::getQueryLog());
Run Code Online (Sandbox Code Playgroud)

结果

Array
(
)
Run Code Online (Sandbox Code Playgroud)

如何查看此查询的日志?

php logging laravel laravel-5

161
推荐指数
7
解决办法
22万
查看次数

在PHP中使用PDO,如何检查最终的SQL参数化查询?

在PHP中,当使用带有参数化查询的PDO访问MySQL数据库时,如何检查最终查询(在替换所有令牌之后)?

有没有办法检查数据库真正执行的是什么?

php mysql pdo sql-parametrized-query

139
推荐指数
5
解决办法
11万
查看次数

Laravel 4 SQL日志/控制台

Laravel中是否有类似的东西可以让你看到正在执行的实际SQL?例如,在Rails中,您可以在控制台中看到SQL.在Django你有一个工具栏.

在Laravel 4中有类似的东西吗?

澄清一下:我的问题是如何在没有代码的情况下做到这一点.是否有内置在Laravel中的东西不需要我在应用程序中编写代码?

更新:我希望看到CLI查询(例如php artisan migrate)

laravel laravel-4

13
推荐指数
4
解决办法
1万
查看次数

Laravel的toSql()方法是否掩盖了ids?(列值被问号代替)

我正在尝试调试我在测试套件中进行的一些SQL查询.使用以下调试代码:

\Log::debug(User::first()->jobs()->toSql());
Run Code Online (Sandbox Code Playgroud)

打印出来的SQL是:

`select * from `jobs` where `jobs`.`deleted_at` is null and `jobs`.`managed_by_id` = ? and `jobs`.`managed_by_id` is not null`
Run Code Online (Sandbox Code Playgroud)

在那里做那个问号是什么?我已经测试了查询,它按预期工作.是因为我正在选择第一个()用户发生这种情况吗?

laravel eloquent

11
推荐指数
3
解决办法
3万
查看次数

Laravel 5雄辩:如何获取正在执行的原始sql?(具有绑定的数据)

我试图弄清楚如何获取原始的SQL查询,包括其中的绑定数据。香港专业教育学院得到的是:

\DB::connection()->enableQueryLog();
$query = \DB::getQueryLog();
$lastQuery = end($query);
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

array(3) {
  ["query"]=>
  string(57) "select * from `table_1` where `field_1` = ? limit 1"
  ["bindings"]=>
  array(1) {
    [0]=>
    string(34) "xyz"
  }
}
Run Code Online (Sandbox Code Playgroud)

那么,如何获得像这样的完整SQL查询的转储(老式的好方法)?

select * from `table_1` where `field_1` = 'xyz' limit 1
Run Code Online (Sandbox Code Playgroud)

谢谢

php mysql laravel-5

7
推荐指数
2
解决办法
2万
查看次数

如何在Laravel之外使用Eloquent ORM的getQueryLog()?

我一直试图找出一种方法来记录我在Zend Framework 1中使用的Eloquent ORM的SQL查询.我遇到了以这种方式调用的getQueryLog()方法:

$queries = DB::getQueryLog();
Run Code Online (Sandbox Code Playgroud)

我发现Illuminate\Database\Connection包含getQueryLog()方法,所以我尝试执行以下操作:

use Illuminate\Database\Connection as DB;

class IndexController
{
    .
    .
    .
    public function indexAction()
    {
        // do stuff (e.g. fetch/update/create rows) 
        $questions = Questions::all()
        .
        .
        $queries = DB::getQueryLog();
        var_dump($queries); exit;
        .
        // render view
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下通知,它返回NULL: Notice: Undefined property: IndexController::$queryLog in /var/www/qasystem/vendor/illuminate/database/Illuminate/Database/Connection.php on line 918 NULL

有人可以建议我如何在Laravel之外使用它吗?我在网上搜索过,看不到我需要做的任何事情,尽管我怀疑大多数例子都会在Laravel中使用.另外,Illuminate\Database\Connection是正确的类吗?谢谢

php laravel eloquent

5
推荐指数
1
解决办法
1852
查看次数

在整数上调用成员函数toSql()

我有一个代码:

$update= DB::table('Appraiser_commands')->where('cycle_id', $cycleid)->where('user_id',$userId)->update(['mode' => $mode,'Appraiser_commnd'=>$json])->toSql();
        echo $update;exit;
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用toSql()将laravel查询转换为mysql

但是我有一个错误

在整数上调用成员函数toSql()

然后我尝试

 DB::table('Appraiser_commands')->where('cycle_id', $cycleid)->where('user_id',$userId)->update(['mode' => $mode,'Appraiser_commnd'=>$json])
         DB::enableQueryLog();
        $queries = DB::getQueryLog();
        dd(end($queries));
Run Code Online (Sandbox Code Playgroud)

但是它返回的输出为'false'我没有得到预期的输出。我不知道为什么会这样,任何帮助将不胜感激。

预期的输出:

UPDATE table_name
SET Appraiser_commnd=value, mode=value2,...
WHERE cycle_id=some_value 
Run Code Online (Sandbox Code Playgroud)

php mysql laravel

1
推荐指数
1
解决办法
4059
查看次数