mirror of
https://github.com/mbirth/tcl_update_db.git
synced 2024-12-26 12:34:07 +00:00
Write update data into database. (only files for now)
This commit is contained in:
parent
c25908cd7d
commit
7deab3588b
51
lib/TclUpdates/SQLiteWriter.php
Executable file
51
lib/TclUpdates/SQLiteWriter.php
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace TclUpdates;
|
||||||
|
|
||||||
|
class SQLiteWriter
|
||||||
|
{
|
||||||
|
private $dbFile;
|
||||||
|
private $pdo;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->dbFile = 'otadb.db3';
|
||||||
|
$this->pdo = new \PDO('sqlite:' . $this->dbFile, 0666, $sqlerror);
|
||||||
|
if ($this->pdo === false) {
|
||||||
|
return $sqlerror;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function insertArray($table, $data)
|
||||||
|
{
|
||||||
|
$placeholders = array_fill(0, count($data), '?');
|
||||||
|
$sql = 'INSERT OR REPLACE INTO "' . $table . '" (' . implode(', ', array_keys($data)) . ') VALUES (' . implode(', ', $placeholders) . ')';
|
||||||
|
$stmt = $this->pdo->prepare($sql);
|
||||||
|
$ok = $stmt->execute(array_values($data));
|
||||||
|
return $ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addGotu(GotuObject $g)
|
||||||
|
{
|
||||||
|
$this->insertArray('updates', array(
|
||||||
|
'tv' => $g->tv,
|
||||||
|
'fv' => $g->fv,
|
||||||
|
'svn' => $g->svn,
|
||||||
|
'pubDate' => $g->time,
|
||||||
|
'publisher' => $g->publisher,
|
||||||
|
'fwId' => $g->fw_id,
|
||||||
|
'file_id' => $g->file_id,
|
||||||
|
'file_name' => $g->filename,
|
||||||
|
'file_size' => $g->file_size,
|
||||||
|
'file_sha1' => $g->file_chksum,
|
||||||
|
'type' => $g->type,
|
||||||
|
'note' => json_encode(array(
|
||||||
|
'en' => $g->description_en,
|
||||||
|
'ja' => $g->description_ja,
|
||||||
|
'zh' => $g->description_zh,
|
||||||
|
))
|
||||||
|
));
|
||||||
|
$key = $this->pdo->lastInsertId();
|
||||||
|
echo "Added entry " . $key . PHP_EOL;
|
||||||
|
}
|
||||||
|
}
|
@ -5,10 +5,12 @@ require_once __DIR__ . '/lib/autoloader.php';
|
|||||||
|
|
||||||
use \TclUpdates\GotuObject;
|
use \TclUpdates\GotuObject;
|
||||||
use \TclUpdates\XmlParser;
|
use \TclUpdates\XmlParser;
|
||||||
|
use \TclUpdates\SQLiteWriter;
|
||||||
|
|
||||||
$bkup_dir = __DIR__ . '/data/';
|
$bkup_dir = __DIR__ . '/data/';
|
||||||
|
|
||||||
$file_list = glob($bkup_dir . '*.xml');
|
$file_list = glob($bkup_dir . '*.xml');
|
||||||
|
$sqlw = new SQLiteWriter();
|
||||||
|
|
||||||
foreach ($file_list as $file) {
|
foreach ($file_list as $file) {
|
||||||
$filename = basename($file);
|
$filename = basename($file);
|
||||||
@ -26,4 +28,5 @@ foreach ($file_list as $file) {
|
|||||||
echo 'Processing ' . $filename . PHP_EOL;
|
echo 'Processing ' . $filename . PHP_EOL;
|
||||||
$g = GotuObject::fromXmlParser($xp);
|
$g = GotuObject::fromXmlParser($xp);
|
||||||
print_r($g);
|
print_r($g);
|
||||||
|
$sqlw->addGotu($g);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user