Skip to content

Commit 37e0b01

Browse files
committed
fix(database): support semicolons in queries
1 parent f34ad57 commit 37e0b01

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

packages/container/src/GenericContainer.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@ public function config(object $config): self
138138
return $this;
139139
}
140140

141+
/**
142+
* @template TClassName of object
143+
* @param class-string<TClassName> $className
144+
* @return null|TClassName
145+
*/
141146
public function get(string $className, ?string $tag = null, mixed ...$params): ?object
142147
{
143148
$this->resolveChain();

tests/Integration/Database/GenericDatabaseTest.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
use Exception;
88
use Tempest\Database\Database;
99
use Tempest\Database\Migrations\CreateMigrationsTable;
10+
use Tempest\Database\Query;
1011
use Tests\Tempest\Fixtures\Migrations\CreateAuthorTable;
1112
use Tests\Tempest\Fixtures\Migrations\CreatePublishersTable;
1213
use Tests\Tempest\Fixtures\Modules\Books\Models\Author;
14+
use Tests\Tempest\Fixtures\Modules\Books\Models\Publisher;
1315
use Tests\Tempest\Integration\FrameworkIntegrationTestCase;
1416

1517
use function Tempest\Database\query;
@@ -50,4 +52,19 @@ public function test_transaction_manager_fails(): void
5052

5153
$this->assertSame(0, query(Author::class)->count()->execute());
5254
}
55+
56+
public function test_query_with_semicolons(): void
57+
{
58+
$this->migrate(CreateMigrationsTable::class, CreatePublishersTable::class);
59+
60+
$db = $this->container->get(Database::class);
61+
$db->execute(
62+
new Query(<<<SQL
63+
INSERT INTO publishers ('name', 'description')
64+
VALUES ('Foo', 'Bar; Baz;')
65+
SQL),
66+
);
67+
68+
$this->assertSame(1, query(Publisher::class)->count()->execute());
69+
}
5370
}

0 commit comments

Comments
 (0)