You need to enable JavaScript to run this app. Magento 2 如何从查询返回对象中获取当前事务隔离级别
优惠活动
大模型
产品
解决方案
定价
更多

Magento 2 如何从查询返回对象中获取当前事务隔离级别

Magento 2 事务隔离级别值提取解决方案

你调用$connection->query()返回的是Magento封装的PDO Statement对象,无法直接通过读取对象属性拿到查询结果,需要调用结果集读取方法提取目标值。

现有代码修正方案

直接在原有代码后补充fetchColumn()调用即可拿到隔离级别字符串:

$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$isolationLevelStmt = $connection->query("SELECT @@transaction_isolation");
// 提取第一行第一列的查询结果
$isolationLevel = $isolationLevelStmt->fetchColumn();
// 输出验证
var_dump($isolationLevel);

推荐规范写法

Magento 2 官方不建议直接使用ObjectManager获取实例,优先通过构造函数依赖注入的方式获取资源连接实例:

// 对应类的构造函数注入
public function __construct(
    \Magento\Framework\App\ResourceConnection $resourceConnection
) {
    $this->connection = $resourceConnection->getConnection();
}

// 业务逻辑中调用查询
public function getTransactionIsolationLevel()
{
    $stmt = $this->connection->query("SELECT @@transaction_isolation");
    return $stmt->fetchColumn();
}

补充说明

  • 如果你使用的是MySQL 5.7以下的旧版本,系统变量名是tx_isolation,可以把查询语句替换为SELECT @@tx_isolation兼容旧版本
  • 如果需要读取完整行结果,也可以调用fetch()方法返回关联数组格式的结果

内容的提问来源于stack exchange,提问作者Peter G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 02:39:02