function ConnectionTest::testMultipleStatementsForNewPhp

Same name and namespace in other branches
  1. 9 core/modules/mysql/tests/src/Kernel/mysql/ConnectionTest.php \Drupal\Tests\mysql\Kernel\mysql\ConnectionTest::testMultipleStatementsForNewPhp()
  2. 10 core/modules/mysql/tests/src/Kernel/mysql/ConnectionTest.php \Drupal\Tests\mysql\Kernel\mysql\ConnectionTest::testMultipleStatementsForNewPhp()
  3. 11.x core/modules/mysql/tests/src/Kernel/mysql/ConnectionTest.php \Drupal\Tests\mysql\Kernel\mysql\ConnectionTest::testMultipleStatementsForNewPhp()

Ensure that you cannot execute multiple statements on MySQL.

File

core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php, line 124

Class

ConnectionTest
Tests of the core database system.

Namespace

Drupal\KernelTests\Core\Database

Code

public function testMultipleStatementsForNewPhp() {
    // This just tests mysql, as other PDO integrations don't allow disabling
    // multiple statements.
    if (Database::getConnection()->databaseType() !== 'mysql') {
        $this->markTestSkipped("This test only runs for MySQL");
    }
    // Disable the protection at the PHP level.
    $this->expectException(DatabaseExceptionWrapper::class);
    Database::getConnection('default', 'default')->query('SELECT * FROM {test}; SELECT * FROM {test_people}', [], [
        'allow_delimiter_in_query' => TRUE,
    ]);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.