The clean & modern RSS server that doesn't give you any crap. https://thearsse.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.5 KiB

<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\MySQL;
/**
* @group slow
* @covers \JKingWeb\Arsse\Db\MySQL\Driver<extended> */
class TestDriver extends \JKingWeb\Arsse\TestCase\Db\BaseDriver {
use \JKingWeb\Arsse\TestCase\DatabaseDrivers\MySQL;
protected $create = "CREATE TABLE arsse_test(id bigint auto_increment primary key)";
protected $lock = ["SET lock_wait_timeout = 1", "LOCK TABLES arsse_meta WRITE"];
protected $setVersion = "UPDATE arsse_meta set value = '#' where `key` = 'schema_version'";
protected static $insertDefaultValues = "INSERT INTO arsse_test(id) values(default)";
protected function exec($q): bool {
if (is_array($q)) {
$q = implode("; ", $q);
}
static::$interface->multi_query($q);
$e = null;
do {
if (!$e && static::$interface->sqlstate !== "00000") {
$e = new \Exception(static::$interface->error);
}
} while (static::$interface->more_results() && static::$interface->next_result());
if ($e) {
throw $e;
}
return true;
}
protected function query(string $q) {
$r = static::$interface->query($q);
if ($r) {
$row = $r->fetch_row();
$r->free();
if ($row) {
return $row[0];
} else {
return null;
}
}
return null;
}
}