本文整理汇总了PHP中DB_STRUCTURE_COMMUN::DB_recuperer_tables_informations方法的典型用法代码示例。如果您正苦于以下问题:PHP DB_STRUCTURE_COMMUN::DB_recuperer_tables_informations方法的具体用法?PHP DB_STRUCTURE_COMMUN::DB_recuperer_tables_informations怎么用?PHP DB_STRUCTURE_COMMUN::DB_recuperer_tables_informations使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DB_STRUCTURE_COMMUN
的用法示例。
在下文中一共展示了DB_STRUCTURE_COMMUN::DB_recuperer_tables_informations方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sauvegarder_tables_base_etablissement
/**
* sauvegarder_tables_base_etablissement
* Remplir le dossier temporaire avec les fichiers de svg des tables
* Pour une sauvegarde individuelle, scindé en plusieurs étapes pour éviter un dépassement du max_execution_time sur de grosses bases.
* Par contre pour une sauvegarde par un webmestre d'un ensemble de structures, c'était trop compliqué à découper, on fait tout d'un coup.
*
* @param string $dossier
* @param int $etape (0 si tout d'un coup)
* @return string
*/
function sauvegarder_tables_base_etablissement($dossier_temp, $etape)
{
if ($etape == 0 || $etape == 1) {
// Nombre d'enregistrements à récupérer par "SELECT * FROM table_nom" et donc ensuite inséré par "INSERT INTO table_nom VALUES (...),(...),(...)"
$nb_lignes_maxi = determiner_nombre_lignes_maxi_par_paquet();
// Lister les tables présentes et le nombre de boucles à effectuer afin de récupérer les données des grosses tables (nombre d'enregistrements / nb_lignes_maxi)
// On met ça en session pour les appels suivants si sauvegarde en plusieurs étapes.
$_SESSION['tab_tables_info'] = array();
$DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_tables_informations();
foreach ($DB_TAB as $DB_ROW) {
// $nb_lignes_maxi est prévu pour "sacoche_saisie" qui comporte beaucoup de lignes, mais les tables avec des champs longs deviennent lourdes avec moins de lignes
switch ($DB_ROW['Name']) {
case 'sacoche_image':
$nb_lignes_maxi_for_table = $nb_lignes_maxi / 100;
break;
case 'sacoche_user':
$nb_lignes_maxi_for_table = $nb_lignes_maxi / 4;
break;
case 'sacoche_officiel_saisie':
$nb_lignes_maxi_for_table = $nb_lignes_maxi / 2;
break;
default:
$nb_lignes_maxi_for_table = $nb_lignes_maxi;
}
$nombre_boucles = max(ceil($DB_ROW['Rows'] / $nb_lignes_maxi_for_table), 1);
// Parcourir au moins une fois la boucle pour une table sans enregistrement
for ($numero_boucle = 0; $numero_boucle < $nombre_boucles; $numero_boucle++) {
$_SESSION['tab_tables_info'][] = array('TableNom' => $DB_ROW['Name'], 'NombreLignes' => $nb_lignes_maxi_for_table, 'NombreBoucles' => $nombre_boucles, 'NumeroBoucle' => $numero_boucle);
}
}
if ($etape == 1) {
// Fin de la première étape
return 'Sauvegarde de la base en cours ; étape n°' . sprintf("%02u", $etape) . ' réalisée';
}
}
// Créer les fichiers sql table par table, et morceau par morceau...
if (count($_SESSION['tab_tables_info'])) {
$i_stop = $etape ? min(10, count($_SESSION['tab_tables_info'])) : count($_SESSION['tab_tables_info']);
for ($i = 0; $i < $i_stop; $i++) {
$tab_table_info = array_shift($_SESSION['tab_tables_info']);
extract($tab_table_info);
// TableNom NombreLignes NombreBoucles NumeroBoucle
$fichier_contenu = '';
// ... la structure
if ($NumeroBoucle == 0) {
$fichier_contenu .= 'DROP TABLE IF EXISTS ' . $TableNom . ';' . "\r\n";
$DB_ROW = DB_STRUCTURE_COMMUN::DB_recuperer_table_structure($TableNom);
$fichier_contenu .= str_replace('`', '', $DB_ROW['Create Table']) . ';' . "\r\n";
$fichier_contenu .= 'ALTER TABLE ' . $TableNom . ' DISABLE KEYS;' . "\r\n";
}
// ... les données
$tab_ligne_insert = array();
$from = $NumeroBoucle * $NombreLignes;
$DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_table_donnees($TableNom, $from, $NombreLignes);
if (!empty($DB_TAB)) {
foreach ($DB_TAB as $DB_ROW) {
$DB_ROW = array_map('formater_valeur', $DB_ROW);
$tab_ligne_insert[] = '(' . implode(',', $DB_ROW) . ')';
}
$fichier_contenu .= 'INSERT INTO ' . $TableNom . ' VALUES ' . "\r\n" . implode(',' . "\r\n", $tab_ligne_insert) . ';' . "\r\n";
}
if ($NumeroBoucle == $NombreBoucles - 1) {
$fichier_contenu .= 'ALTER TABLE ' . $TableNom . ' ENABLE KEYS;' . "\r\n";
}
// Enregistrer le fichier
$fichier_sql_nom = 'dump_' . $TableNom . '_' . sprintf("%03u", $NumeroBoucle) . '.sql';
FileSystem::ecrire_fichier($dossier_temp . $fichier_sql_nom, $fichier_contenu);
}
if ($etape > 0) {
return 'Sauvegarde de la base en cours ; étape n°' . sprintf("%02u", $etape) . ' réalisée';
} else {
unset($_SESSION['tab_tables_info']);
return TRUE;
}
} else {
// A la dernière étape on ne fait rien ici, on zippe juste les fichiers après appel de cette fonction
unset($_SESSION['tab_tables_info']);
return 'Sauvegarde de la base terminée';
}
}
示例2: exit
// A ce niveau, le fichier de connexion à la base de données doit exister.
if(!is_file(CHEMIN_FICHIER_CONFIG_MYSQL))
{
exit('Erreur : problème avec le fichier : '.FileSystem::fin_chemin(CHEMIN_FICHIER_CONFIG_MYSQL).' !');
}
// Créer les dossiers de fichiers temporaires par établissement
if(HEBERGEUR_INSTALLATION=='mono-structure')
{
foreach(FileSystem::$tab_dossier_tmp_structure as $dossier)
{
FileSystem::creer_dossier($dossier.'0' , $affichage );
FileSystem::ecrire_fichier_index($dossier.'0');
}
}
// On cherche d'éventuelles tables existantes de SACoche.
$DB_TAB = (HEBERGEUR_INSTALLATION=='mono-structure') ? DB_STRUCTURE_COMMUN::DB_recuperer_tables_informations() : DB_WEBMESTRE_PUBLIC::DB_recuperer_tables_informations() ;
$nb_tables_presentes = !empty($DB_TAB) ? count($DB_TAB) : 0 ;
if($nb_tables_presentes)
{
$s = ($nb_tables_presentes>1) ? 's' : '' ;
$base_nom = (HEBERGEUR_INSTALLATION=='mono-structure') ? SACOCHE_STRUCTURE_BD_NAME : SACOCHE_WEBMESTRE_BD_NAME ;
$affichage .= '<p><label class="alerte">'.$nb_tables_presentes.' table'.$s.' de SACoche étant déjà présente'.$s.' dans la base « <b>'.$base_nom.'</b> », les tables n\'ont pas été installées.</label></p>'.NL;
$affichage .= '<p class="astuce">Si besoin, supprimez les tables manuellement, puis <a href="#" class="step6">relancer l\'étape 6.</a><label id="ajax_msg"> </label></p>'.NL;
$affichage .= '<hr />'.NL;
$affichage .= '<h2>Installation logicielle terminée</h2>'.NL;
$affichage .= '<p>Pour se connecter avec le compte webmestre : <a href="'.URL_DIR_SACOCHE.'?webmestre">'.URL_DIR_SACOCHE.'?webmestre</a></p>'.NL;
}
else
{
if(HEBERGEUR_INSTALLATION=='mono-structure')
{