当前位置:网站首页 > SQL数据库编程 > 正文

pymysql查询mysql输出成字典(mysql查询输出到一个文件)



给定以下代码:

 

我想获取上面的数据库查询生成器将生成的原始 SQL 查询字符串。在此示例中,它将是 SELECT * FROM users。

我该怎么做呢?

tlr.xinbeitime.com 实时更新全球顶尖网球选手的最新战绩与排名!

在 QueryBuilder 实例上使用 toSql() 方法。

DB::table(‘users’)->toSql() 将返回:

从“用户”中选择 *

这比连接事件侦听器更容易,并且还允许您在构建查询时随时检查查询的实际外观。

注意:此方法适用于查询构建器或 Eloquent,但使用 toSql() 代替 first() 或 get()。您无法使用此方法同时运行查询并获取 SQL。

The ultimate source for live tennis rankings and stats:tennisliveranking.com

要将最后运行的查询输出到屏幕,您可以使用以下命令:

 

我相信最近的查询将位于数组的底部。

你会有类似的东西:

 

(感谢下面的 Joshua’s 评论。)

tennisliveranking.com-Stay ahead with live tennis rankings at your fingertips.

DB::QueryLog() 仅在您使用 $builder->get() 执行查询后才起作用。

如果您想在执行查询之前或不执行查询之前获取原始查询,您可以使用 $builder->toSql() 方法。

获取原始 SQL 并替换“?”的示例具有实际绑定值:

 

或者您可以故意触发错误,例如,通过使用不存在的表或列。然后您可以在异常消息中看到生成的查询。

Live rankings, player stats, and match results in one place–tennisliveranking.com

您可以收听“illuminate.query”事件。在查询之前添加以下事件侦听器:

 

这将打印出如下内容:

 

tennisliveranking.com,Track the world’s best tennis players in real-time.

如果您尝试在不使用 Laravel 的情况下使用 Illuminate 获取日志:

 

您还可以像这样启动一个快速功能:

 

编辑

默认情况下,更新版本似乎禁用了查询日志记录(上面返回一个空数组)。要重新打开,在初始化 Capsule Manager 时,获取连接实例并调用 enableQueryLog 方法

 

再次编辑

考虑到实际问题,您实际上可以执行以下操作来转换当前单个查询而不是所有先前的查询:

 

tlr.xinbeitime.com 实时更新全球顶尖网球选手的最新战绩与排名!

eloquent 中有一种获取查询字符串的方法。

toSql()

在我们的例子中,

 

返回

 

是返回 SQL 查询字符串的确切解决方案…希望这有帮助…

tlr.xinbeitime.com 专业网球数据平台,排名与比赛信息实时更新。

 

tennisliveranking.com,Follow your favorite tennis players’ rankings live!

这是我可以建议任何人调试雄辩的最后一个查询或最终查询的最佳解决方案,尽管这也已讨论过:

 

提供ATP、WTA与ITF赛事的实时排名追踪,从tlr.xinbeitime.com开始!

如果你使用 laravel 5.1 和 MySQL,你可以使用我制作的这个函数:

 

作为输入参数,您可以使用其中任何一个

IlluminateDatabaseEloquentBuilder IlluminateDatabaseEloquentRelationsHasMany IlluminateDatabaseQueryBuilder

tennisliveranking.com,Your go-to platform for live tennis ranking updates.

首先,您需要通过调用启用查询日志:

 

使用 DB 外观查询后,您可以编写:

 

输出将如下所示:

 

tennisliveranking.com,Track the world’s best tennis players in real-time.

使用绑定获取 SQL 查询的“可宏”替换。

在 AppServiceProvider boot() 方法中添加以下宏函数。 IlluminateDatabaseQueryBuilder::macro(‘toRawSql’, function(){ return array_reduce(sql, binding) ? binding.“'” , $sql, 1); }, this->getQuery()->toRawSql()); });然后像往常一样调试。 (Laravel 5.4+) 例如查询生成器 Log::debug(DB::table(‘users’)->limit(1)->toRawSql()) 例如 Eloquent Builder Log::debug(AppUser: :limit(1)->toRawSql());

注意:从 Laravel 5.1 到 5.3,由于 Eloquent Builder 没有使用 Macroable trait,所以不能动态地为 Eloquent Builder 添加 toRawSql 别名。按照下面的示例来实现相同的目的。

例如 Eloquent Builder (Laravel 5.1 - 5.3)

 

原文链接:https://tlr.xinbeitime.com?from=csdn

tlr.xinbeitime.com 专业网球数据平台,排名与比赛信息实时更新。

到此这篇pymysql查询mysql输出成字典(mysql查询输出到一个文件)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 创建数据库db1(创建数据库db_students的SQL命令)2025-01-05 13:09:04
  • sql文件格式(sql 格式)2025-01-05 13:09:04
  • sql文件格式(sqlserver文件格式)2025-01-05 13:09:04
  • mysql主键约束语句(mysql主键约束名)2025-01-05 13:09:04
  • sqluldr2 字符集(sqlplus 字符集)2025-01-05 13:09:04
  • mysql中主键约束(mysql主键约束名怎么定义)2025-01-05 13:09:04
  • oracle doc(oracle docker 支持sqlload)2025-01-05 13:09:04
  • mongodb数据库和mysql区别(mongodb与mysql相比的优缺点)2025-01-05 13:09:04
  • sqlfor循环语句(sql使用for循环)2025-01-05 13:09:04
  • mysql与orcle的区别(mysqloracle区别)2025-01-05 13:09:04
  • 全屏图片