function convert_books($mysql_db, $sqlite_db, $min) { $sqlite_db->query("begin transaction;"); $sqlite_db->query("DELETE FROM books"); $sqltest = "\n SELECT \n libbook.bid, FileSize, Title, Deleted, FileType, md5, DATE_FORMAT(libbook.Time,'%y%m%d') as Time, Lang, Year,\n CASE WHEN aid IS NULL THEN 0 ELSE aid END AS aid,\n CONCAT(libbook.bid, '.', libbook.FileType) AS FileName\n FROM libbook \n LEFT JOIN libavtor ON libbook.bid = libavtor.bid AND libavtor.role = 'a' AND libavtor.aid<>0\n WHERE libbook.bid>{$min}\n "; $query = $mysql_db->query($sqltest); while ($row = $query->fetch_array()) { echo "Book: " . $row['Time'] . " - " . $row['bid'] . " - " . $row['FileType'] . " - " . $row['aid'] . " - " . $row['Title'] . "\n"; $id = $row['bid']; $genres = ""; $subsql = "SELECT code FROM libgenre LEFT JOIN libgenrelist ON libgenre.gid = libgenrelist.gid WHERE bid={$id}"; $subquery = $mysql_db->query($subsql); while ($subrow = $subquery->fetch_array()) { $genres = $genres . GenreCode($subrow['code']); } $deleted = NULL; if ($row['Deleted'] == 1) { $deleted = 1; } $file_type = trim($row['FileType']); $file_type = trim($file_type, "."); $file_type = strtolower($file_type); $file_type = strtolowerEx($file_type); $lang = $row['Lang']; $lang = strtolower($lang); $lang = strtolowerEx($lang); $rate = book_rate($mysql_db, $id); $sql = "INSERT INTO books (id, id_author, title, deleted, file_name, file_size, file_type, genres, created, lang, year, rate, md5sum) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)"; $insert = $sqlite_db->prepare($sql); if ($insert === false) { $err = $sqlite_db->errorInfo(); die($err[2]); } $err = $insert->execute(array($id, $row['aid'], trim($row['Title']), $deleted, $row['FileName'], $row['FileSize'], $file_type, $genres, $row['Time'], $lang, $row['Year'], $rate, $row['md5'])); if ($err === false) { $err = $sqlite_db->errorInfo(); die($err[2]); } $insert->closeCursor(); } $sqlite_db->query("commit;"); }
function convert_genr($sqlite_db, $min) { $sqlite_db->query("begin transaction;"); $sqlite_db->query("DELETE FROM genres"); $prior = 0; $fields = ""; $genres = ""; $handle = fopen("db/booktags", "r"); while (true) { if (feof($handle)) { $book = 0; } else { $buffer = Trim(fgets($handle, 4096), "\n\r"); if (empty($buffer[0])) { continue; } $fields = explode(chr(9), $buffer); $book = $fields[0]; $code = Trim($fields[1]); $code = Trim($code, "\n\r"); $char = GenreCode($code); } if ($prior && $book != $prior) { echo "Genr: " . $prior . " - " . $genres . "\n"; $sql = "UPDATE books SET genres=? WHERE id=?"; $insert = $sqlite_db->prepare($sql); $insert->execute(array($genres, $prior)); $genres = ""; } if (feof($handle)) { break; } if (!empty($char[0])) { echo "Genr: " . $book . " - " . $char . " - " . $code . "\n"; $sql = "INSERT INTO genres(id_book, id_genre) VALUES(?,?)"; $insert = $sqlite_db->prepare($sql); $insert->execute(array($book, $char)); $genres = $genres . $char; } $prior = $book; } fclose($handle); $sqlite_db->query("commit;"); }