Informations
Cree le 03/01/2010
Modifie le 03/01/2010
Php




Actions
Participants
Pas de participants
Associations
Pas de dossiers associes
Partager
Executer tous les scripts SQL d'un dossier
Lors de l'installation (ou de la réinstallation) d'un site web, nous sommes souvent amenés à exécuter à la chaine des scripts SQL pour initialiser la base de données. Voici une petite fonction qui vous permet de vous faciliter la tâche lorsque ces scripts donc séparés en plusieurs fichiers. La seule contrainte est de nommer vos fichiers en indiquant l'ordre d'exécution par un numéro suivit d'un tiret bas puis du titre du fichier pour chaque nom de fichier, exemple : 1_membres.sql, 2_articles.sql, ...
/**
* Executes all sql files located in a folder and order by name, filenames must be like "8_sql_file.sql"
* @param $pdo PDO : pdo object
* @param $folder string : folder path of sql files, ending by "/"
*/
function install_db(PDO $pdo,$folder) {
// Open directory
if(!is_dir($folder)) {
throw new Exception('Folder \''.$folder.'\' doesn\'t exist.');
}
if(!($directory = opendir($folder))) {
throw new Exception('Permission denied to read in folder \''.$folder.'\'.');
}
// List SQL files
$tabFiles = array();
while(($entry = readdir($directory)) !== false) { // List files
if(sscanf(pathinfo($entry,PATHINFO_BASENAME),'%d_%s.sql',$fileNum,$fileName) == 2) { // SQL file
$tabFiles[$fileNum] = $folder.$entry;
}
}
ksort($tabFiles);
// List and execute SQL requests
foreach($tabFiles as $file) {
$tabRequests = explode(';',file_get_contents($file));
foreach($tabRequests as $request) {
$pdo->query($request);
}
}
}
Commentaires
Pas encore de commentaires
Tutoriaux
Services
Ressources
Forum
Partenaires

