GlisWeb framework
_125.mysql.php
Vai alla documentazione di questo file.
1 <?php
2 
15  // debug
16  // die( $cf['site']['status'] );
17  // die( print_r( $cf['mysql'], true ) );
18 
19  // verifico che sia presente alemno un server
20  if( isset( $cf['mysql']['profile']['servers'] ) && is_array( $cf['mysql']['profile']['servers'] ) && count( $cf['mysql']['profile']['servers'] ) > 0 ) {
21 
22  // verifico che sia presente almeno un server
23  if( count( $cf['mysql']['profile']['servers'] ) > 0 ) {
24 
25  // ciclo sui server attivi per lo stato corrente
26  foreach( $cf['mysql']['profile']['servers'] as $server ) {
27 
28  // log
29  logWrite( 'tento la connessione a: ' . $server, 'mysql', LOG_DEBUG );
30 
31  // inizializzo la connessione
32  $cn = mysqli_init();
33 
34  // riduco il tempo massimo di connessione per evitare rallentamenti
35  mysqli_options( $cn, MYSQLI_OPT_CONNECT_TIMEOUT, 3 );
36 
37  // connessione
38  @mysqli_real_connect(
39  $cn,
40  $cf['mysql']['servers'][ $server ]['address'],
41  $cf['mysql']['servers'][ $server ]['username'],
42  $cf['mysql']['servers'][ $server ]['password']
43  );
44 
45  // controllo errori
46  if( mysqli_connect_errno() ) {
47 
48  // log
49  logWrite( 'errore di connessione a ' . $server . ': ' . mysqli_connect_errno() . ' ' . mysqli_connect_error(), 'mysql', LOG_ERR );
50 
51  } else {
52 
53  // versione del server
54  $cf['mysql']['servers'][ $server ]['version'] = mysqli_get_server_info( $cn );
55 
56  // selezione database
57  if( mysqli_select_db( $cn, $cf['mysql']['servers'][ $server ]['db'] ) ) {
58  logWrite( 'database selezionato: ' . $cf['mysql']['servers'][ $server ]['db'], 'mysql', LOG_DEBUG );
59  } else {
60  logWrite( 'impossibile selezionare il database: ' . $cf['mysql']['servers'][ $server ]['db'], 'mysql', LOG_ERR );
61  }
62 
63  // character set
64 # mysqli_set_charset( $cn, 'utf8' );
65 
66  // collation
67  mysqlQuery( $cn, 'SET character_set_connection = utf8' );
68  mysqlQuery( $cn, 'SET collation_connection = utf8_general_ci' );
69 
70  // timezone
71  mysqlQuery( $cn, 'SET time_zone = ?', array( array( 's' => $cf['localization']['timezone']['name'] ) ) );
72 
73  // localizzazione
74  mysqlQuery( $cn, 'SET lc_time_names = ?', array( array( 's' => str_replace( '-', '_', $cf['localization']['language']['ietf'] ) ) ) );
75 
76  // log
77  logWrite( 'connessione stabilita: ' . $server, 'mysql', LOG_DEBUG );
78  logWrite( 'dettagli: ' . mysqli_get_host_info( $cn ), 'mysql', LOG_DEBUG );
79 
80  // aggiungo la connessione all'array
81  $cf['mysql']['connections'][ $server ] = $cn;
82 
83  }
84 
85  }
86 
87  // connessione di default
88  if( count( $cf['mysql']['connections'] ) ) {
89  $keys = array_keys( $cf['mysql']['connections'] );
90  $key = array_shift( $keys );
91  $cf['mysql']['connection'] = &$cf['mysql']['connections'][ $key ];
92  $cf['mysql']['server'] = &$cf['mysql']['servers'][ $key ];
93  }
94 
95  } else {
96 
97  // log
98  logWrite( 'nessun server MySQL impostato per il livello di funzionamento corrente', 'mysql', LOG_DEBUG );
99 
100  }
101 
102  } else {
103 
104  // log
105  logWrite( 'backend MySQL non configurato', 'mysql', LOG_DEBUG );
106 
107  }
108 
109  // debug
110  // print_r( $cf['mysql']['profile'] );
111  // print_r( $cf['mysql']['connections'] );
112  // print_r( $cf['mysql'] );
113 
114 ?>
logWrite( $m, $f='site', $l=LOG_NOTICE, $d=DIRECTORY_LOG, $t=CURRENT_LOG_LEVEL, $s=SITE_STATUS)
scrive un messaggio nei log del sito
Definition: _log.utils.php:48
mysqlQuery( $c, $q, $p=false, &$e=array())
$cf['ricerca']['template']
Definition: _030.common.php:7