What are the differences in syntax and functionality between SQLite with PDO and SQLite with mysqli in PHP?

When using SQLite with PDO in PHP, the syntax is more consistent with other database drivers supported by PDO, making it easier to switch between different database systems. PDO also provides a set of consistent methods for interacting with the database, simplifying code maintenance. On the other hand, when using SQLite with mysqli, the syntax is specific to the mysqli extension, which may require rewriting code if switching to a different database system. Additionally, mysqli does not support prepared statements as effectively as PDO, which can lead to potential security vulnerabilities.

// Using SQLite with PDO
try {
    $pdo = new PDO('sqlite:mydatabase.db');
    $stmt = $pdo->prepare('SELECT * FROM my_table');
    $stmt->execute();
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach ($result as $row) {
        // process each row
    }
} catch (PDOException $e) {
    echo 'Error: ' . $e->getMessage();
}

// Using SQLite with mysqli
$mysqli = new mysqli('localhost', 'username', 'password', 'mydatabase');
if ($mysqli->connect_error) {
    die('Connection failed: ' . $mysqli->connect_error);
}

$result = $mysqli->query('SELECT * FROM my_table');
if ($result) {
    while ($row = $result->fetch_assoc()) {
        // process each row
    }
} else {
    echo 'Error: ' . $mysqli->error;
}

$mysqli->close();