我正在开发一个提供休息网络服务的Symfony应用程序(带有JSON的简单HTTP请求)。 该服务检查一些规则并在两个MySQL表中插入几行(只写)。
出于优化原因,即使Doctrine包可用,我也使用本机MySQL Query(使用bind params)来插入这些行。
我的需求是:如果出于任何原因,数据库不可用,请写" runnables"查询到日志文件。
最终目的是当数据库恢复时,我希望能够直接执行数据库中文件的内容。 请注意,没有唯一约束(pk是生成的uuid)并且没有要处理的锁或事务(简单的插入语句)。
我编写了一个自定义SQLLogger,但是在调用$connection->insert(...)
时,连接在调用logger之前失败。
所以,我的问题是:有一种方法可以在没有数据库连接的情况下获得最终查询(带有绑定参数)吗?
或者我应该重写将params绑定到查询中的机制,并在数据库不可用时自己记录?
致以最诚挚的问候,
于连
答案 0 :(得分:0)
由于参数的最终查询是由数据库构建的,无法使用PHP构建查询,并且保证查询与数据库相同。
在没有绑定参数的情况下构建查询的唯一方法,但这显然不是一个好习惯。
所以,如果数据库不可用,我最终决定将所有JSON(API请求体)存储在文件中。
因此,当数据库返回时,我可以重放原始HTTP查询,而不是重放SQL查询。
希望这个迟到的自助者会帮助别人。
最好的问候。