Skip to main content Help Control Panel

Login   A+   A-

Community «   Le forum «   Nouvelles fonctions «  

SQLite

gmcms -- on May 20 2006
Bonjour, est il prévu le support d'autres base de données que mySQL, comme par exemple SQLite ? L'objet de la question est lié à :
  • la simplicité de sauvegarde des petits sites, plus simple avec SQLite ou des flat files.
  • la lenteur des serveur mySQL chez certains hébergeurs. Cette lenteur étant souvent dûe à des CMS de très mauvaise qualité qui saturent les serveurs de requettes SQL.


Merci
GnapZ on May 21 2006
C'est une bonne question et il faudra attendre la passage de Bernard ou de Fernand pour avoir une idée là dessus.

Je ne pense pas qu'il y ait une évolution dans ce sens pour des raisons de compatibilité avec les hébergeurs où MySql est un format très répandu. Je ne connais pas particulièrement SqlLite, y a-t-il une réelle incompatibilité avec MySql (les requêtes Sql devraient avoir la même syntaxe, non ?) ?
Bernard on May 21 2006
A l'heure actuelle YACS supporte seulement la syntaxe MySQL, avec des ordres SQL assez compliques.
Gmcms on May 21 2006
SQLite est de plus ne plus répendu chez les hébergeurs car natif avec php5. Il existe de nombreuses classes php d'abstraction qui permettent d'avoir un code portable d'une database à l'autre avec une syntaxe unique dans les scripts php. De plus, la plupart de ces classes supportent de nombreuses autres database, faisant d'une pierre plusieurs coups.
Gmcms on May 21 2006
Pour un début de piste, voici deux liens. Le célèbre adodb : http://adodb.sourceforge.net/ Un peu moins connu mais très bien ezsql : http://www.jvmultimedia.com/portal/node/6
GnapZ on May 21 2006
Gmcms : Merci pour ces infos. A creuser donc.
Gmcms on May 23 2006
En l'état actuel de mes connaissances de YACS, je ne suis pas capable de dire si la "complexité" des requettes SQL est incompatible avec l'utilisation d'une classe d'abstraction de base de données.

En prenant comme exemple la classe ezSQL, voici à quoi ressemblerait l'organisation du code :

mySQL :

/*****************
*  ezSQL initialisation for mySQL
*/

// Include ezSQL core
include_once "../shared/ez_sql_core.php";

// Include ezSQL database specific component
include_once "ez_sql_mysql.php";

// Initialise database object and establish a connection
// at the same time - db_user / db_password / db_name / db_host
$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');



SQLite :

/*****************
*  ezSQL initialisation for SQLite
*/

// Include ezSQL core
include_once "../shared/ez_sql_core.php";
    
// Include ezSQL database specific component
include_once "ez_sql_sqlite.php";

// Initialise database object and establish a connection
// at the same time - db_path / db_name
$db = new ezSQL_sqlite('./','sqlite_test.db');



Pour les requettes, il faudrait approfondir pour voir si elles sont réalisables de façon génériques quelque soit la database. La réponse n'est certainement pas triviale.

Rate this page
Posted by Gmcms on May 20 2006, (popular)