简体   繁体   中英

How to get php-native handle from Doctrine\DBAL\Connection?

Given the code

$connectionParams = array(
    'dbname' => $this->dbname,
    'user' => $this->dbuser,
    'password' => $this->dbpass,
    'host' => $this->dbhost,
    'driver' => 'mysqli',
);

$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams);        
var_dump($conn);

How can I get the underlying mysqli handle from $conn (which is a Doctrine\\DBAL\\Connection)?

I have found * a way * to access it, but its obviously not the way it's supposed to be done, so I'm up for suggestions:

$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams);        
foreach((array)$conn->getWrappedConnection() as $mysqli){
    // TODO: find official way of getting the handle.
    // here we are casting it to (array) to access its PRIVATE PROPERTIES
    // it's a fugly hack. 
    break;
}
var_dump($mysqli);

您可以通过以下方式获取:

$mysqli = $conn->getWrappedConnection()->getWrappedResourceHandle();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM