begin process at 2012 05 27 21:51:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > RÉ-INSTALLER UNE BASE DE DONNÉE SQLITE

RÉ-INSTALLER UNE BASE DE DONNÉE SQLITE


 Description

Peut-être m'y suis-je toujours mal pris, mais c'est toujours compliqué de mettre en ligne une base de données sqlite parce que le manager livré par wamp est bogué. Aussi, en me servant de diverses sources, j'ai créé ce script qui fabrique un fichier d'installation de la base sqlite. Pour cela, il suffit d'installer un fichier, qu'on nommera par ex. save_all.php avec le code ci dessous, dans le dossier où il y a la base sqlite en localhost. On lance save_all.php et il génère un fichier reinstall_db.php qui contient tous les code d'installation de la base. Ce dernier, on l'uploade chez l'hébergeur et on le lance : la base sqlite est créée avec tout dedans.

Source

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml">
  • <head>
  • <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • <title>fabriquation du fichier de ré-installation</title>
  • <?php
  • $action = @$_GET["action"];
  • if($action=="oui") {
  • $fname = "reinstall_db.php";
  • $fichier=fopen( $fname,"w");
  • $str = "<?php \r\n";
  • $str .= '$db = sqlite_open(\'monsite_db\', 0666, $sqliteerror);'. "\r\n";
  • //on ouvre la base sqlite
  • $db = sqlite_open('monsite_db', 0666, $sqliteerror);
  • // on extrait la liste des noms de table
  • $result = sqlite_query ($db, "SELECT name,sql FROM sqlite_master WHERE type='table'");
  • while ($row = sqlite_fetch_array($result)) {
  • $str .= 'sqlite_query($db,"'.$row['sql'].'");'."\r\n"; // on écrit la liste des codes de création des tables
  • }
  • //on liste les insert par table $row[0]
  • //on refait la même requête
  • $insert = sqlite_query ($db, "SELECT name FROM sqlite_master WHERE type='table'");
  • while ($row = sqlite_fetch_array($insert)) {
  • //on écrit dans le fichier le nom de la table, pour info
  • $str .= "\r\n".'#'.$row[0]."\r\n\r\n";
  • //requête avec le nom de la table
  • $table = sqlite_query($db, "SELECT * FROM $row[0] ");
  • //nombre de champs
  • $nb_field=sqlite_num_fields($table);
  • //nombre de lignes
  • $nb_rows = sqlite_num_rows($table);
  • //on liste les lignes
  • $c=0;
  • while($c<$nb_rows){
  • //on fetche ce qu'il y a dans la ligne
  • $row_table=sqlite_fetch_array($table);
  • //on écrit le code d'insert
  • $str .= 'sqlite_query($db,"INSERT INTO '.$row[0]." VALUES ('";
  • //on liste les champs
  • $i=0;
  • while($i<$nb_field){
  • //on cherche les noms de chaque champ
  • $name= sqlite_field_name($table,$i);
  • //on met une virgule devant sauf au premier
  • if($i>0) $str .= "','";
  • //on écrit dans le fichier le contenu de chaque champ
  • //on s'occupe des quotes et des double quotes
  • $antislsh = str_replace('"','\"',$row_table["$name"]);
  • $antislsh = str_replace("'","''",$antislsh);
  • //on enlève les doublons d'anti-slashes éventuels
  • $str .= str_replace('\\\\','\\',$antislsh);
  • $i++;
  • }
  • $str .= '\')")'.";\r\n";
  • $c++;
  • }
  • }
  • $str .='?>';
  • //on écrit le fichier de ré-installation
  • fputs($fichier,$str);
  • ?>
  • <p>Un fichier de création de base de donnéee a &eacute;t&eacute; fabriqué : reinstall_db.php<br />Il contient toute la base de données de mon site.com
  • </p>
  • <?php
  • }
  • else { ?>
  • <p align="center">
  • <form action="save_sqlite_all.php?action=oui" method="post">
  • Fabrication du fichier de ré-installation de la base de données de mon site<br />
  • <br />
  • <input name="send" type="submit" value="Allez!">
  • </form>
  • </p>
  • <?php } ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>fabriquation du fichier de ré-installation</title>
<?php
$action = @$_GET["action"];

if($action=="oui") {    
	$fname = "reinstall_db.php"; 
	$fichier=fopen( $fname,"w");     
	$str = "<?php \r\n"; 
	$str .= '$db = sqlite_open(\'monsite_db\', 0666, $sqliteerror);'. "\r\n";
		  
	//on ouvre la base sqlite	     
	$db = sqlite_open('monsite_db', 0666, $sqliteerror);  
	// on extrait la liste des noms de table 
	$result = sqlite_query ($db, "SELECT name,sql FROM sqlite_master WHERE type='table'");
		while ($row = sqlite_fetch_array($result)) { 	 
     		$str .= 'sqlite_query($db,"'.$row['sql'].'");'."\r\n"; // on écrit la liste des codes de création des tables
		}
	//on liste les insert par table $row[0]
	//on refait la même requête	
	$insert = sqlite_query ($db, "SELECT name FROM sqlite_master WHERE type='table'");
		while ($row = sqlite_fetch_array($insert)) { 
		//on écrit dans le fichier le nom de la table, pour info
		$str .= "\r\n".'#'.$row[0]."\r\n\r\n";	
		//requête avec le nom de la table
     	$table = sqlite_query($db, "SELECT * FROM $row[0]  ");
		//nombre de champs
     	$nb_field=sqlite_num_fields($table);
		//nombre de lignes	 	
		$nb_rows = sqlite_num_rows($table);	
		//on liste les lignes
	 		$c=0;
	 		while($c<$nb_rows){
				//on fetche ce qu'il y a dans la ligne
				$row_table=sqlite_fetch_array($table);
				//on écrit le code d'insert
				$str .= 'sqlite_query($db,"INSERT INTO '.$row[0]." VALUES ('";
				//on liste les champs
				$i=0;
					while($i<$nb_field){
						//on cherche les noms de chaque champ
						$name= sqlite_field_name($table,$i);
						//on met une virgule devant sauf au premier	
						if($i>0) $str .=  "','";
						//on écrit dans le fichier le contenu de chaque champ	
						//on s'occupe des quotes et des double quotes
						$antislsh = str_replace('"','\"',$row_table["$name"]);
						$antislsh = str_replace("'","''",$antislsh);
						//on enlève les doublons d'anti-slashes éventuels
						$str .= str_replace('\\\\','\\',$antislsh);					
					$i++;
				}			
			$str .= '\')")'.";\r\n";			
			$c++;
			}
}		
	$str .='?>';
//on écrit le fichier de ré-installation
fputs($fichier,$str);
?>
<p>Un fichier de création de base de donnéee a &eacute;t&eacute; fabriqué : reinstall_db.php<br />Il contient toute la base de données de mon site.com 
</p>            
<?php
   }
else { ?>   
<p align="center">
<form action="save_sqlite_all.php?action=oui" method="post"> 
Fabrication du fichier de ré-installation de la base de données de mon site<br />
 <br />
<input name="send" type="submit" value="Allez!"> 
</form> 
</p>
<?php } ?> 



 Sources du même auteur

GESTION DES NOMS
FILTRE À GROS MOTS POUR LIVRE D'OR

 Sources de la même categorie

Source avec Zip RECHERCHE DE MOTS DANS UN DICTIONNAIRE par alpha5
Source avec Zip Source avec une capture GESTION DES ANIMAUX par okosa
Source avec Zip Source avec une capture LIST DES IMAGES AVEC BASE DE DONNÉES ET REPERTOIR D'IMAGE par yannickcephas
Source avec Zip Source avec une capture CHARGER UNE BASE DONNÉES DANS UNE LISTVIEW PUIS L'EXPORTER S... par johndave
Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa

 Sources en rapport avec celle ci

DUPLICATION D'UNE BASE DE DONNÉES POUR SAUVEGARDE par fmarie
SAUVEGARDE D'UNE BASE DE DONNÉE, RESULTAT ENVOYER PAR EMAIL,... par 1030
Source avec Zip Source avec une capture SAUVEGARDE SQL ET DOSSIERS par frinux
Source avec Zip CLASS MYSQL/SQLITE + SAUVEGARDE DE BDD + COMPRESSION ZIP par Gueko
Source avec une capture SAUVEGARDE AUTOMATISÉE DE VOS BASES DE DONNÉES par malik7934

Commentaires et avis

Commentaire de stailer le 05/09/2009 09:46:51

Il existe des extensions Firefox très sympa pour administrer du SQLite, à commencer par :
https://addons.mozilla.org/en-US/firefox/addon/5817

J'ai développé toute une application avec, vraiment bien...

Tu peux bien sur exporter toute la base ou toutes les tables, et lancer le script sql en ligne, enfin bref, je pense que ça évite un tel script

Commentaire de valneandre le 05/09/2009 10:56:20

Bonjour Armenak et Stailer
L'un comme l'autre m'apportez un début de réponse à la question qui m'angoisse depuis des lustres: comment passer d'un site entièrement programmé avec des fichiers textes, à un site SQL. Je m'entraîne à manipuler sql sur mon ordi, je commence à m'en sortir, mais le passage au serveur distant, c'est là que je bloque. Sur mon ordi, je peux créer une BDD; mais chez l'hébergeur, impossible. J'ai pourtant activé, au départ, PHP et SQL (sinon, je ne pourrais même pas manipuler de fichiers textes, n'est-ce-pas ?) mais pas moyen de créer une base.
Un ami me dit qu'il faut que ce soit l'hébergeur qui la crée pour moi, et je peux la remplir ensuite...
Mais ce que vous semblez dire tous deux, c'est qu'on peut la créer chez soi, et la transférer ensuite. Pourriez-vous m'éclairer un peu plus ?
D'avance merci
Valnéandre

Commentaire de stailer le 06/09/2009 18:53:31

Ce serait long de tout t'expliquer en détail et j'ai pas vraiment le temps.

en revanche petite précision :
tu as pris un hébergement PHP et SQL. En fait, je suis quasiment sur que ton hébergement est basé sur une base de données MySQL. c'est un SGBR, une base de données installée sur un serveur avec comme adresse de connexion : l'adresse d'un serveur, port, login et mot de passe.

Ici nous parlons d'une base de données SQLite dont les pilotes pour s'y connecter par php sont installés en natif. Ce n'est pas un SGBDR mais une base de données "fichiers" utilisée pour un faible volume de données et peu de demande en bande passante. Pour se connecter il faut : l'adresse du fichier de base de données sur le serveur, login et mot de passe.

Donc toi je pense que tu parles du 1er cas : MySQL.
Dans ton interface d'administration de ton hébergement tu dois avoir la possibilité de créer une ou plusieurs bases de données. Lorsque ce sera fait, on te donnera son adresse, son nom , login et mot de passe. C'est ça qu'il faudra utiliser en PHP pour s'y connecter.

Bref, la je te résume en gros.

Il faudrait que tu t'achètes un bouquin sur PHP/MySQL, ou que tu regardes des tutoriaux et il faudrait voir qui est ton hébergeur précisément pour pouvoir t'aider concernant la création des bases.

Commentaire de valneandre le 06/09/2009 20:53:30

Merci Stailer !
Effectivement, j'ai PHP et SQL (non SQLite), et jusqu'à présent je ne me suis servi que de PHP avec des fichiers texte. Je vais potasser l'interface d'admin de mon hébergeur (Coeur-Internet, basé en Angleterre) pour voir comment créer une base et y accéder.
Encore merci de ton aide.
Valnéandre

Commentaire de stailer le 06/09/2009 23:05:58

Si tu es sur du PHP5 , normalement ton hébergeur t'as donné les 2 : MySQL, mais aussi SQLite car il fait partie de la librairie native de PHP5.
Pour voir toutes les extensions installées avec PHP (SOAP, SQLite, XSLT etc... ) , tu dois créer un fichier php (info.php par exemple) et taper :
<?php
echo phpinfo();
?>

Lance cette page sur ton serveur, tu verras toute ta configuration php et les extensions proposées

Commentaire de valneandre le 07/09/2009 08:38:01

Merci !

Commentaire de armenak le 14/09/2009 23:39:42

J'étais en vacances et je n'ai donc pas encore pu participer à la conversation.
Je connaissais l'addon, et c'est pour cela que j'ai bricolé ce script. Tout se passe d'une manière bien plus simple qu'avec l'outil Firefox: un clic pour générer le fichier, on uploade le fichier dans le dossier où doit être la base, on l'ouvre et voilà. De plus, en faisant évoluer le script (compression et envoi du fichier sql par mail), on peut s'en servir comme sauvegarde de la base. Ce que ne permet pas le manager de Ffox.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

installation de PHPed [ par Luj ] Vous qui avez tous un logiciel pour éditer et réaliser des scripts en PHP, dites-moi quel sont vos logiciels...Moi, g PHPed et j'arrive pas a voir ce installation d'un site sur un serveur linux [ par aphikit ] j'ai réalisé un annuaire en php avec la base de donnée Mysql, pour un intranet et j'aurais aimé le mettre à disposition de tous.Mais je débute en info Installation de PHP sur win 2k [ par brodeur ] Bonjour, je voudrais savoir s'il y a un logiciel facile pour installer le PHP sur Win 2K J'ai essayer avec le programme officiel, mais j'ai pas reussi Installation de JPGraph [ par BSide ] Bonjour,je souhaite pouvoir générer des graphs grâce à l'extension JPGraph 1.6.3 récupérée sur Aditus.Je ne comprends pas un traître mot à ce qu'il fa Installation GD 2.0--> Help !! [ par SuperDede ] comment on fait pour installer GD 2.0 sur apache je suis sous Windows et avec Easy PhPmerci ! installation php [ par elanspeech ] J'ai installe php4.3.1 avec les commandes suivantes : ./configure --prefix=/usr --with-mysql --enable-track-vars;make;make installcependant, mes pages installation php [ par elanspeech ] J'ai installe php4.3.1 avec les commandes suivantes : ./configure --prefix=/usr --with-mysql --enable-track-vars;make;make install cependant, mes page Prob Installation PHP [ par neocide ] [_]NEOCIDE[_]Salut!Je suis sous WinMe et j'ai installé Apache et PHP mais je n'ai pas trouver la dll qui permet de mettre PHP en module sous Apache.Où aide pour installation de messagerie [ par lucy ] je suis très débutante et j'aimerais bien qu on m'expliquer commen installer une messagerie.. alors si qqn si connait.. ben donnez moi votre adresse m sauvegarde d'une variable d'une fonction [ par lise8051 ] J'aimerais en php sauvegarder une variable définie dans une fonction pour la réutiliser en dehors. Est ce que je peux faire ca en définissant la varia


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales