fSQL on failipõhine relatsiooniline andmehoiustus / andmebaasisüsteem mis toetab ka syntaxi lugemist. fSQLi syntax on disainitud võimalikult sarnaseks MySQL syntaxiga, et too ei tunduks väga võõras ega võimatu.
Download: fsql.zip 17.65 kb
GitHub: https://github.com/sbuberl/fSQL / SourceForge: https://sourceforge.net/projects/fsql/ (sekundaarne)
Laadige alla (soovitatavalt viimane versioon GitHubist) fSQl zip fail ja asetage failid fSQL.php, fSQLDatabase.php ning fSQLFunctions.php kõik kõrvuti teile sobivasse asukohta.
fSQL ei vaja oma tööks sisuliselt mitte midagi peale andmbaasi ning tema asukoha defineerimise ja aktiivseks määramise kuid on soovitatav siiski luua mõned kaustad, et säilitada puhtus ka failistruktuuris.
Loome juurkausta (failide fSQL.php, fSQLDatabase.php ja fSQLFunctions.php kõrvale) kausta db ning kausta db loome kaks kausta: db001 ja db002.
Loome juurkausta index.php ning seame tema sisu järgnevaks:
include("fSQL.php");
$fsql = new fSQLEnvironment;
$fsql->define_db('db001', dirname(__FILE__) . '/db/db001');
$fsql->define_db('db002', dirname(__FILE__) . '/db/db002');
$fsql->select_db('db001');
$fsql->query("CREATE TABLE inimesed (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30),
age INT,
PRIMARY KEY(id)
)") or die($fsql->error());
Ülaltoodud koodiga, oleme defineerinud 2 olemasolevat andmebaasi (eelnevalt käsitsi loodud kasutadesse) db001 ja db002 ning oleme palunud fSQLil kasutada andmebaasi db001 kuhu lisasime uue tabeli `inimesed`
fSQL syntax on disainitud võimalikult lähedale MySQL syntaxiga ning seda nimelt, et uustulijatel fSQL kasutajatel ei oleks raskusi ümberharjumisega.
MySQL syntaxiga saate tutvuda dev.mysql.com kodulehel või laadida chm formaadis käsiraamat mysql-refman-5.5-en.chm (14.25 mb).
PHPs $fsql funktsioone kasutades võib abiks olla selline teadmine: kui on olemas funktsioon mysqli_query, siis on olemas ka $fsql->query, kui on mysqli_num_rows on ka $fsql->num_rows. Ühesõnaga funktsioonid kattuvad kui asendate mysqli_ asemele $fsql-> .
Kasutame ka antud lehel fSQL lahendust ning oleme loonud külastajate loenduri millele on poogitud ka benchmarking. Siin on resultaadid:
$s = microtime(true);
# include("fSQL.php");
include("fSQL.1.3.1.php");
$fsql = new fSQLEnvironment;
$fsql->define_db('db001', dirname(__FILE__) . '/db/db001');
$fsql->select_db('db001');
$c = number_format(microtime(true) - $s, 10);
# Table creation check
$s = microtime(true);
# $fsql->query("DROP TABLE visits");
$fsql->query("CREATE TABLE IF NOT EXISTS visits (
id INT NOT NULL AUTO_INCREMENT,
ip VARCHAR(16),
PRIMARY KEY(id)
)") or die( $fsql->error() );
$t = number_format(microtime(true) - $s, 10);
# Insert
$s = microtime(true);
$fsql->query("INSERT INTO visits (id, ip) VALUES (NULL, '{$_SERVER['REMOTE_ADDR']}');") or die( $fsql->error() );
$i = number_format(microtime(true) - $s, 10);
# Select
$s = microtime(true);
$sql = $fsql->query("SELECT COUNT(id) AS num FROM visits") or die( $fsql->error() );
$chn = $fsql->fetch_assoc($sql) or die( $fsql->error() );
$S = number_format(microtime(true) - $s, 10);
# Select distinct
$s = microtime(true);
$sql = $fsql->query("SELECT ip FROM visits") or die( $fsql->error() );
$chp = array();
while($row = $fsql->fetch_assoc($sql))
{
if( ! in_array($row['ip'], $chp) )
{
$chp[] = $row['ip'];
}
}
$SD = number_format(microtime(true) - $s, 10);
Võtke ühendust e-posti teel info@joonaskolostov.ee
kirjutage facebooki kasutajale Joonas Kolostov