当前位置: 首页 > 知识库问答 >
问题:

在laravel中获取原始的sql查询[复制]

谷梁凌
2023-03-14

在用户模型中,我定义了关系:

\App\User::where('id' ,1)->toSql();

它返回选择*从用户id=?如何获得包括参数的完整查询?

我还定义了与post模型的关系:

public function posts(){
    return $this->hasMany(\App\Posts::class);
}

如何使用参数查看完整的关系查询?

共有1个答案

柳胡媚
2023-03-14

有两种方法:Laravel方法和MySQL方法。

Laravel方法是使用DB::getQueryLog();

\App\User::where('id' ,1)->get();
$queries = \DB::getQueryLog();
Log::info(end($queries)); // OR
dd(end($queries));

MySQL方式涉及一般日志。

mysql> show variables like 'general_log%';
+------------------+------------------------------+
| Variable_name    | Value                        |
+------------------+------------------------------+
| general_log      | OFF                          |
| general_log_file | /var/lib/mysql/homestead.log |
+------------------+------------------------------+

检查日志位置的变量。在查询之前,运行SET GLOBALgeneral_log=1,并确保在查询完成后将其设置回0。然后打开该日志文件,您将看到准备和执行行。

 类似资料:
  • 问题内容: 我在控制器的函数中。 因此,从表单中,我得到了一个变量的值,说: 然后,我需要在WHERE语句中嵌入该变量(即它的值)。如果我对值进行硬编码,它将带来正确的结果,但是我已经尝试了各种方法来插入该变量而没有成功。好吧,假设我设法使用了该变量,那么我将不得不研究绑定以避免SQL注入,但是到目前为止,我要说的是,看看该变量是否可以在查询中使用。 我已经试过了,双引号,串联。$ vx。,花括号

  • 在模型查询API不够用的情况下,你可以使用原始的sql语句。django提供两种方法使用原始sql进行查询:一种是使用Manager.raw()方法,进行原始查询并返回模型实例;另一种是完全避开模型层,直接执行自定义的sql语句。 警告 编写原始的sql语句时,应该格外小心。每次使用的时候,都要确保转义了参数中的任何控制字符,以防受到sql注入攻击。更多信息请参阅防止sql注入。 进行原始查询 r

  • 如何在laravel 5.1中获得此查询。我有模型菜单,数据库菜单。这个查询SQL得到我想要的结果。 同样的事情,我不能得到这个查询

  • 问题内容: 我有一个由一些条件创建的复杂查询,我想从将要执行的构建器对象中获取最终的SQL查询。我可以那样做吗? 问题答案: 您可以执行以下操作: 但是Laravel不会在查询中向您显示参数,因为它们是在准备查询后绑定的。 因此,您也可以执行以下操作:

  • 问题内容: 我正在使用MySQLdb包在python中执行mysql查询。代码看起来像这样: 其中包含我要存储在列表中的十进制值。 问题是我得到的每个值都像这样:列表中我想要的就是XX.XX。在脚本的结尾,我的列表如下所示: 但我需要它仅包含数字,如下所示: 我怎么做? 谢谢! 问题答案:

  • 我正在尝试使用sqlalchemy执行原始sql查询,并想知道什么是“正确”的方法。 我的查询如下(目前): 我不喜欢的是字符串格式和缺乏任何参数处理(你好music_volume引号:-D)。 我试图遵循这个答案: 如何在SQLAlchemy flask应用程序中执行原始SQL 应用我读到的内容后,我的代码片段如下所示: 然而,我得到的错误,mv和ml是不能识别的参数。 如果我把我的代码片段改成