Menu

Home

SQLiteManager for PHP 7/8 (Modernized Fork of 1.2.4) User Manual

🇯🇵 日本語取扱説明書 (Japanese Manual)


⚠️ 【Notice: Currently Preparing for Release】
This project is currently undergoing final verification and testing for release.
The distribution file (SQLiteManager-2.0.0.zip) and README.md will be uploaded shortly. Thank you for your patience.

This project is a modernized fork (Version 2.0.0) of "SQLiteManager 1.2.4," a masterpiece tool originally published on SourceForge whose development had long been suspended. The codebase has been extensively refactored from the ground up to ensure a comfortable, secure, and production-ready experience in modern PHP 7.4 / 8.3 environments.

As a long-time user, the developer has personally utilized and relied on this tool in daily development for many years. It has been meticulously upgraded and debugged in response to evolving PHP and SQLite versions—such as migrating entirely to PDO and eliminating strict deprecation warnings—based on real-world use cases. As a result, it offers robust stability for standard data operations and routine database management.

Please note that for this public release, potential edge cases or unresolved errors under highly specific conditions have been intentionally classified as "out-of-scope/as-is specifications" and are explicitly documented in the included README.md.

With deep respect for the original development team, this version preserves the timeless excellence of the original UI/UX while polishing it into a front-line tool capable of thriving in today's modern development environments.


🛠 1. Key Improvements (Overview)

Detailed technical specifications and limitations are documented in the accompanying README.md. The major changes are as follows:

  • Full PHP 8.x Compatibility: Complete transition to PDO/SQLite3, and total elimination of deprecation warnings (Deprecated).
  • Purging Legacy Features: Removal of obsolete MySQL connection features, the outdated SPAW editor, and legacy plugins to achieve a lightweight codebase.
  • Robust CSV Export: Full compliance with RFC 4180, ensuring reliable protection for fields containing embedded newlines.
  • Modern SQLite Syntax Support: Accurate identification and protection of modern multi-character operators (such as ->>).
  • Complete ALTER TABLE Implementation: Strict adherence to the official recommended "12-step table recreation process."
  • Optimized CSV Upload: Performance enhancements via fgetcsv() processing, featuring secure automatic rollbacks upon errors.
  • Modernized Operation: Enhanced usability through the integration of a lightweight keyboard shortcut feature.

⌨️ 2. Keyboard Shortcuts (Operation Guide)

To enable lightning-fast page switching and sorting without relying on a mouse when handling large datasets, a custom keyboard shortcut feature has been uniquely implemented.

(Note: Shortcuts are automatically deactivated when form inputs like text boxes or textareas are focused, preventing accidental triggers during data entry.)

2.1. Pagination (Screen Navigation)

On data list screens, you can navigate intuitively using the following keys:

Key Action Performed Target UI Element
j Move to Next Page Triggers #nextpage (Click)
k Move to Previous Page Triggers #beforepage (Click)
t Move to First Page (Top) Triggers #toppage (Click)
e Move to Last Page (End) Triggers #endpage (Click)

2.2. Structural Operations & Selection

Key Action Performed Target UI Element / Behavior
l Focus Left Menu (Tree View) Moves focus to the top of the left frame (#left). From there, you can easily use Tab to navigate down the database tree.

2.3. Column Sorting (Dynamic Binding)

Mapped to the table column headers on the screen, you can execute sorting up to the 9th column instantly using numeric keys.

Key Action Performed Target UI Element
1 Sort by 1st Column Triggers #column0 (Click)
2 Sort by 2nd Column Triggers #column1 (Click)
3 Sort by 3rd Column Triggers #column2 (Click)
4 Sort by 4th Column Triggers #column3 (Click)
5 Sort by 5th Column Triggers #column4 (Click)
6 Sort by 6th Column Triggers #column5 (Click)
7 Sort by 7th Column Triggers #column6 (Click)
8 Sort by 8th Column Triggers #column7 (Click)
9 Sort by 9th Column Triggers #column8 (Click)

(Note: Keys are dynamically enabled based on the number of columns present on the screen. Pressing a number that exceeds the available columns will result in no action.)


💾 3. Key Features & Operating Procedures

CSV Export Usage

🔄 【Under Construction: Content Coming Soon】
Specific operating procedures and use cases regarding RFC 4180 compliance and embedded newline data protection will be published simultaneously with the official release. Thank you for your patience.


🛠 4. Environment-Dependent Behaviors & Limitations

Max File Size Limit during CSV Import (Environment-Dependent)

The CSV import routine in this tool implements stream-reading via fgetcsv(), theoretically allowing processing of large-scale CSV files without causing memory exhaustion.

However, if server-side errors (such as maximum file size exceeded) occur during upload, it indicates a conflict with core PHP configuration limits (php.ini). Adjust the following directives as needed for your host environment:

; Specify appropriate values matching your server environment
upload_max_filesize = 50M
post_max_size = 50M

Note: Applying these changes requires restarting your web server or corresponding PHP process.


🔒 5. Security and Transparency

The keyboard shortcut feature implemented in this project utilizes shortcut.js (Version 2.01.B / OpenJS), a lightweight, open-source library with a proven global track record.

No source code obfuscation or suspicious external tracking/transmissions (such as sending keystroke data to external servers) are performed. The source code within the included js/ directory is fully open for public audit and verification.


👥 6. Credits / Acknowledgements

  • Original Project: SQLiteManager 1.2.4 (Created by Frédéric HENNINOT and the project community on SourceForge)
  • Fork Author: Yui Hoshizura (Extensively refactored the codebase for PHP 7/8 compatibilities)

I express my deepest respect and gratitude to Frédéric HENNINOT and the original development team who crafted this incredible tool and shared it as open-source software over a decade ago. Without their magnificent architectural design, this Version 2.0.0 would never have been possible.


Related

Wiki: ja