De la MySQL la SQLite3
Moderatori: Moderatori, Start Moderator
De la MySQL la SQLite3
Bună Ziua dragi forumişti, deci.. am un site la care lucrez de ceva vreme şi vreau să îl schimb pe SQLite3 de pe MySQL. Am şi eu nevoie de câteva funcţii pentru sqlite ca de exemplu, să înlocuies în fişier din mysql_query în sqlite3_query sau mysql_num_rows în sqlite3_num_rows sau mysql_fetch_array în sqlite3_fetch_array deci să înclocuiesc decât numele funcţiilor, să nu stau acum să modific la fiecare interogare, să modific deocată numele funcţiilor cu Notepad++. Sper că înţelegeţi ce vreau să spun.
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
Re: De la MySQL la SQLite3
foloseste clasa http://sqlclassphp.sourceforge.net/inde ... hp-example
in arhiva zip ai exemple de lucru cu 2 baze de date in acelasi timp (mysql si sqlite), practic interogarile raman la fel, functiile apelate sunt la fel, doar instantarea clasei difera.
mai sunt mici diferente legate de sintaxa, de exemplu mysql are NOW() pe cand sqlite nu are, dar te prinzi tu pe parcurs de diferentele de sintaxa, dar nu cred ca te afecteaza.
atentie, sqlite nu suporta asa bine tranzactii (si e mai lent ca mysql cand e vb de volum mare de date, dar pentru un site de prezentare e ok).
in arhiva zip ai exemple de lucru cu 2 baze de date in acelasi timp (mysql si sqlite), practic interogarile raman la fel, functiile apelate sunt la fel, doar instantarea clasei difera.
mai sunt mici diferente legate de sintaxa, de exemplu mysql are NOW() pe cand sqlite nu are, dar te prinzi tu pe parcurs de diferentele de sintaxa, dar nu cred ca te afecteaza.
atentie, sqlite nu suporta asa bine tranzactii (si e mai lent ca mysql cand e vb de volum mare de date, dar pentru un site de prezentare e ok).
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
Re: De la MySQL la SQLite3
Daca ai mysql de ce nu folosesti mysqli sau pdo ... Folosesc acelasi sintaxe plus au si o viteza de inserare/update rapida. Dar cum zicea si birkoff la un site de prezentare e ok ca nu ai procese mari.
Im caz de doresti sa faci teste ai volumul de clase la birkoff cu toate tipurile de mysql
Success
Im caz de doresti sa faci teste ai volumul de clase la birkoff cu toate tipurile de mysql
Success
Re: De la MySQL la SQLite3
Birkoff scrie:foloseste clasa http://sqlclassphp.sourceforge.net/inde ... hp-example
in arhiva zip ai exemple de lucru cu 2 baze de date in acelasi timp (mysql si sqlite), practic interogarile raman la fel, functiile apelate sunt la fel, doar instantarea clasei difera.
mai sunt mici diferente legate de sintaxa, de exemplu mysql are NOW() pe cand sqlite nu are, dar te prinzi tu pe parcurs de diferentele de sintaxa, dar nu cred ca te afecteaza.
atentie, sqlite nu suporta asa bine tranzactii (si e mai lent ca mysql cand e vb de volum mare de date, dar pentru un site de prezentare e ok).
Mulţumesc, o să încerc clasa aceea.
"sqlite nu suporta asa bine tranzactii" îmi poţi explica ce înseamnă chestia asta ?
Vreau să încerc SQLite pentru că pe siteul care îl am (unul de statistici servere şi jucători) este un volum mare de date iar MySQL urcă procesorul foarte foarte mult.
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
Re: De la MySQL la SQLite3
1) legat de tranzactii, ai aici un tutorial http://www.tutorialeonline.net/ro/artic ... losind-php
problema peste care am dat eu tine de permisiunile de scriere/citire pe fisier (legate de sistemul de operare) astfel ca daca cineva vrea sa scrie intr-un fisier si altcineva sa citeasca/scrie tot din acelasi fisier in acelasi timp, la al doilea ii va da eroare de acces - pana nu termina primul de scris, urmatorul nu are acces la fisier (respectiv fisierul sqlite in acest caz). Personal, am scapat de problema folosind o latenta mai mare la citirea / scrierea datelor (asa am pus sqlite sa astepte intre interogari pana termina primul vizitator apoi il ia la rand pe urmatorul)
2) legat de volum mare de date, recomand sa ramai la mysqli si sa optimizezi interogarile si sa pui index pe coloanele folosite cel mai des, asta va optimiza mult interogarile (vezi tutoriale despre indecsi mysql pe net)
3) recomand sa folosesti clasa aia (sau una similara gen pdo) pentru ca iti va usura mult munca in caz ca vrei ulterior sa treci de la mysql la mysqli sau la sqlite sau la alte tipuri de baze de date.
problema peste care am dat eu tine de permisiunile de scriere/citire pe fisier (legate de sistemul de operare) astfel ca daca cineva vrea sa scrie intr-un fisier si altcineva sa citeasca/scrie tot din acelasi fisier in acelasi timp, la al doilea ii va da eroare de acces - pana nu termina primul de scris, urmatorul nu are acces la fisier (respectiv fisierul sqlite in acest caz). Personal, am scapat de problema folosind o latenta mai mare la citirea / scrierea datelor (asa am pus sqlite sa astepte intre interogari pana termina primul vizitator apoi il ia la rand pe urmatorul)
2) legat de volum mare de date, recomand sa ramai la mysqli si sa optimizezi interogarile si sa pui index pe coloanele folosite cel mai des, asta va optimiza mult interogarile (vezi tutoriale despre indecsi mysql pe net)
3) recomand sa folosesti clasa aia (sau una similara gen pdo) pentru ca iti va usura mult munca in caz ca vrei ulterior sa treci de la mysql la mysqli sau la sqlite sau la alte tipuri de baze de date.
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
Re: De la MySQL la SQLite3
Am încercat să folosesc clasa aia dar n-am reuşit să-i dau de cap,
dacă folosesc o funcţie aşa:
Dar îmi arată datele decât prima înregistrare din baza de date,
Dacă folosesc funcţia asta:
Îmi arată cum trebuie.
dacă folosesc o funcţie aşa:
Cod: Selectaţi tot
function sqlite_fetch_array($results)
{
$resx = $results->fetchArray(SQLITE3_ASSOC);
return $resx;
}
Dar îmi arată datele decât prima înregistrare din baza de date,
Dacă folosesc funcţia asta:
Cod: Selectaţi tot
while ($row = $results->fetchArray()) {
var_dump($row);
}
Îmi arată cum trebuie.
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
Re: De la MySQL la SQLite3
lexta scrie:Am încercat să folosesc clasa aia dar n-am reuşit să-i dau de cap,
ai exemplu de folosire in directorul de exemple - http://sourceforge.net/projects/sqlclas ... p/download
folosind clasa aia uite cum poti sa extragi datele din sqlite
Cod: Selectaţi tot
require_once 'sqlite3.inc.php'; // calea catre clasa sqlite3
$db = new SQLITE3_DB('cale/catre/fisierul/sqlite.db', '0666', '', '', 'nume_bd_din_sqlite');
if ( $db->open() === false ) {
echo 'eroare conectare bd, verificati calea catre fisierul sqlite si numele bazei de date din acel fisier';
echo $db->sql_error();
exit;
}
$query = "SELECT * FROM nume_tabel";
$result = $db->query($query);
if ( ! $result ) {
echo 'eroare la interogare, verificati sintaxa sql';
echo $db->sql_error();
exit;
}
while ($row = $db->fetch_array($result)) {
echo '<pre>'.var_export($row, 1).'</pre>'; // aici afisezi sau faci ceva cu randurile din bd
}
$db->free_result();
// show all query if is needed (for debug)
// echo '<pre>'.var_export($db->sql_query_log,1).'</pre>';
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
Re: De la MySQL la SQLite3
Eu vreau cumva să fac să creez câteva funcţii asemănătoare cu mysql gen sqlite_query,sqlite_fecth_array,sqlite_num_rows...
Doar să modific numele funcţiilor din fişiere, să nu stau să modific la fiecare mysql_query cu query-ul aferent sqlite, vreau decât să modific numele funcţiei, de ex din mysql_fetch_array în sqlite_fetch_array, pentru asta vreau să creez funcţiile respective..
Am făcut funcţia asta:
Dacă o folosesc aşa de ex:
Primesc eroarea
dacă o folosesc aşa:
Îmi arată tot ce am cerut prin query...
Doar să modific numele funcţiilor din fişiere, să nu stau să modific la fiecare mysql_query cu query-ul aferent sqlite, vreau decât să modific numele funcţiei, de ex din mysql_fetch_array în sqlite_fetch_array, pentru asta vreau să creez funcţiile respective..
Am făcut funcţia asta:
Cod: Selectaţi tot
function sqlite_fetch_array($results)
{
$array = array();
while ($row = $results->fetchArray()) {
array_push($array, $row);
}
return $array;
}
Dacă o folosesc aşa de ex:
Cod: Selectaţi tot
$query = sqlite_query($db,"SELECT * FROM `gs_players_rank` LIMIT 5000");
$roww = sqlite_fetch_array($query);
echo $roww['player_id'];
Primesc eroarea
Cod: Selectaţi tot
Notice: Undefined index: player_id in /home/.../.../test.php on line 13
dacă o folosesc aşa:
Cod: Selectaţi tot
$query = sqlite_query($db,"SELECT * FROM `gs_players_rank` LIMIT 5000");
$roww = sqlite_fetch_array($query);
var_dump($roww);
Îmi arată tot ce am cerut prin query...
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
Re: De la MySQL la SQLite3
daca te uitai in cele 2 clase de la mine (mysqli si sqlite3) vedeai ca ce incerci tu sa faci deja am facut eu in acele clase )
poti copia din acele clase functiile.
poti copia din acele clase functiile.
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 75 vizitatori