function ConnectionTest::testPDOStatementQueryDeprecation
Tests the deprecation of passing a PDOStatement object to ::query.
@group legacy
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Database/ ConnectionTest.php, line 154
Class
- ConnectionTest
- Tests of the core database system.
Namespace
Drupal\KernelTests\Core\DatabaseCode
public function testPDOStatementQueryDeprecation() : void {
$db = Database::getConnection();
$stmt = $db->prepareStatement('SELECT * FROM {test}', []);
if (!$stmt instanceof StatementWrapper) {
$this->markTestSkipped("This test only runs for db drivers using StatementWrapper.");
}
if (!$stmt->getClientStatement() instanceof \PDOStatement) {
$this->markTestSkipped("This test only runs for PDO-based db drivers.");
}
$this->expectDeprecation('Passing a \\PDOStatement object as a $query argument to Drupal\\Core\\Database\\Connection::query is deprecated in drupal:9.2.0 and is removed in drupal:10.0.0. Call the execute method from the StatementInterface object directly instead. See https://www.drupal.org/node/3154439');
$this->assertNotNull($db->query($stmt->getClientStatement()));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.