<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Driver\SQLite3;
use Doctrine\DBAL\Driver\Statement as StatementInterface;
use Doctrine\DBAL\ParameterType;
use SQLite3;
use SQLite3Stmt;
use function assert;
use const SQLITE3_BLOB;
use const SQLITE3_INTEGER;
use const SQLITE3_NULL;
use const SQLITE3_TEXT;
final class Statement implements StatementInterface
{
private const TYPE_BLOB = SQLITE3_BLOB;
private const TYPE_INTEGER = SQLITE3_INTEGER;
private const TYPE_NULL = SQLITE3_NULL;
private const TYPE_TEXT = SQLITE3_TEXT;
/** @internal The statement can be only instantiated by its driver connection. */
public function __construct(
private readonly SQLite3 $connection,
private readonly SQLite3Stmt $statement,
) {
}
public function bindValue(int|string $param, mixed $value, ParameterType $type): void
{
$this->statement->bindValue($param, $value, $this->convertParamType($type));
}
public function execute(): Result
{
try {
$result = $this->statement->execute();
} catch (\Exception $e) {
throw Exception::new($e);
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX