|
@@ -15,26 +15,26 @@
|
15
|
15
|
// constantes
|
16
|
16
|
define('MYSQL_TYPES_NUMERIC', 'int real ');
|
17
|
17
|
define('MYSQL_TYPES_DATE', 'datetime timestamp year date time ');
|
18
|
|
-define('MYSQL_TYPES_STRING', 'string blob ');
|
|
18
|
+define('MYSQL_TYPES_STRING', 'string blob ');
|
19
|
19
|
|
20
|
20
|
class Conexion_Mysql {
|
21
|
21
|
|
22
|
|
- var $mbase_datos;
|
23
|
|
- var $mservidor;
|
24
|
|
- var $musuario;
|
25
|
|
- var $mclave;
|
26
|
|
- var $mid_conexion = 0; // Identificador de conexión
|
|
22
|
+ var $mbase_datos;
|
|
23
|
+ var $mservidor;
|
|
24
|
+ var $musuario;
|
|
25
|
+ var $mclave;
|
|
26
|
+ var $mid_conexion = 0; // Identificador de conexi�n
|
27
|
27
|
var $mid_consulta = 0; // Identificador de consulta
|
28
|
|
- var $merror_numero = 0; // Número de error
|
29
|
|
- var $merror = ""; // Descripción del error.
|
30
|
|
-
|
31
|
|
- /** Al crear una instancia de clase, se ejecutará esta función */
|
32
|
|
- function Conexion_Mysql($bd="", $host="localhost", $user="", $pass="") {
|
33
|
|
- $this->mbase_datos = $bd;
|
34
|
|
- $this->mservidor = $host;
|
35
|
|
- $this->musuario = $user;
|
|
28
|
+ var $merror_numero = 0; // N�mero de error
|
|
29
|
+ var $merror = ""; // Descripci�n del error.
|
|
30
|
+
|
|
31
|
+ /** Al crear una instancia de clase, se ejecutara esta funcion */
|
|
32
|
+ function Conexion_Mysql($bd="", $host="localhost", $user="", $pass="") {
|
|
33
|
+ $this->mbase_datos = $bd;
|
|
34
|
+ $this->mservidor = $host;
|
|
35
|
+ $this->musuario = $user;
|
36
|
36
|
$this->mclave = $pass;
|
37
|
|
-
|
|
37
|
+
|
38
|
38
|
if (!$this->conectar()) {
|
39
|
39
|
$mensaje = "
|
40
|
40
|
<h3 class=\"important\">Error establishing a database connection</h3>
|
|
@@ -44,42 +44,42 @@ class Conexion_Mysql {
|
44
|
44
|
<li>Are you sure that you have typed the correct hostname?</li>
|
45
|
45
|
<li>Are you sure that the database server is running?</li>
|
46
|
46
|
</ul>";
|
47
|
|
- die($mensaje);
|
|
47
|
+ die($mensaje);
|
48
|
48
|
}
|
49
|
49
|
}
|
50
|
|
-
|
51
|
|
- /** Conectar a la base de datos */
|
52
|
|
- function conectar() {
|
53
|
|
- // Conectamos al servidor
|
54
|
|
- $this->mid_conexion = @mysql_connect($this->mservidor, $this->musuario, $this->mclave);
|
55
|
|
- if (!$this->mid_conexion) {
|
56
|
|
- $this->merror = "No se logró realizar la conexión.";
|
|
50
|
+
|
|
51
|
+ /** Conectar a la base de datos */
|
|
52
|
+ function conectar() {
|
|
53
|
+ // Conectamos al servidor
|
|
54
|
+ $this->mid_conexion = @mysql_connect($this->mservidor, $this->musuario, $this->mclave);
|
|
55
|
+ if (!$this->mid_conexion) {
|
|
56
|
+ $this->merror = "No se logr� realizar la conexi�n.";
|
57
|
57
|
return false;
|
58
|
|
- }
|
59
|
|
- //seleccionamos la base de datos
|
60
|
|
- if (!@mysql_select_db($this->mbase_datos, $this->mid_conexion)) {
|
61
|
|
- $this->merror = "No se puede abrir la base ".$this->mbase_datos ;
|
62
|
|
- return false;
|
63
|
|
- }
|
64
|
|
- return $this->mid_conexion; // Si todo salio bien regresa el id de la conexión
|
65
|
|
- }
|
66
|
|
-
|
67
|
|
- /** Para ejecutar consultas en la conexión abierta */
|
|
58
|
+ }
|
|
59
|
+ //seleccionamos la base de datos
|
|
60
|
+ if (!@mysql_select_db($this->mbase_datos, $this->mid_conexion)) {
|
|
61
|
+ $this->merror = "No se puede abrir la base ".$this->mbase_datos ;
|
|
62
|
+ return false;
|
|
63
|
+ }
|
|
64
|
+ return $this->mid_conexion; // Si todo salio bien regresa el id de la conexi�n
|
|
65
|
+ }
|
|
66
|
+
|
|
67
|
+ /** Para ejecutar consultas en la conexi�n abierta */
|
68
|
68
|
function ejecutarConsulta($msql = "") {
|
69
|
|
- if ($msql == "") {
|
70
|
|
- $this->merror = "No introdujo la sentencia SQL";
|
71
|
|
- return false;
|
72
|
|
- }
|
73
|
|
- //ejecutamos la consulta
|
74
|
|
- $this->mid_consulta = mysql_query($msql, $this->mid_conexion);
|
75
|
|
- if (!$this->mid_consulta) {
|
76
|
|
- $this->merror_numero = mysql_errno();
|
|
69
|
+ if ($msql == "") {
|
|
70
|
+ $this->merror = "No introdujo la sentencia SQL";
|
|
71
|
+ return false;
|
|
72
|
+ }
|
|
73
|
+ //ejecutamos la consulta
|
|
74
|
+ $this->mid_consulta = mysql_query($msql, $this->mid_conexion);
|
|
75
|
+ if (!$this->mid_consulta) {
|
|
76
|
+ $this->merror_numero = mysql_errno();
|
77
|
77
|
$this->merror = mysql_error()." error";
|
78
|
|
- return false;
|
79
|
|
- }
|
80
|
|
- return $this->mid_consulta; // Si todo salio bien regresa el id de la consulta
|
81
|
|
- }
|
82
|
|
-
|
|
78
|
+ return false;
|
|
79
|
+ }
|
|
80
|
+ return $this->mid_consulta; // Si todo salio bien regresa el id de la consulta
|
|
81
|
+ }
|
|
82
|
+
|
83
|
83
|
/**
|
84
|
84
|
* Inserta un registro en la DB por cada llave->valor en un arreglo.
|
85
|
85
|
* No se debe usar sentencias SQL con esta funcion.
|
|
@@ -90,26 +90,26 @@ class Conexion_Mysql {
|
90
|
90
|
* @return string El ID del insert, verdadero si la tabla no tiene un campo auto_increment o false si ocurre un error.
|
91
|
91
|
*/
|
92
|
92
|
function insertarDeFormulario($tabla, $datos) {
|
93
|
|
-
|
|
93
|
+
|
94
|
94
|
if (empty($datos)) {
|
95
|
95
|
$this->merror = "Debes de pasar un arreglo como parametro.";
|
96
|
96
|
return false;
|
97
|
97
|
}
|
98
|
|
-
|
|
98
|
+
|
99
|
99
|
$cols = '(';
|
100
|
100
|
$sqlValues = '(';
|
101
|
|
-
|
|
101
|
+
|
102
|
102
|
foreach ($datos as $llave=>$valor) {
|
103
|
|
-
|
104
|
|
- $cols .= "$llave,";
|
105
|
|
-
|
|
103
|
+
|
|
104
|
+ $cols .= "$llave,";
|
|
105
|
+
|
106
|
106
|
$tipo_col = $this->obtenerTipoCampo($tabla, $llave); // obtiene el tipo de campo
|
107
|
107
|
if (!$tipo_col) return false; // error!
|
108
|
|
-
|
|
108
|
+
|
109
|
109
|
// determina si se necesita poner comillas al valor.
|
110
|
110
|
if (is_null($valor)) {
|
111
|
|
- $sqlValues .= "NULL,";
|
112
|
|
- }
|
|
111
|
+ $sqlValues .= "NULL,";
|
|
112
|
+ }
|
113
|
113
|
elseif (substr_count(MYSQL_TYPES_NUMERIC, "$tipo_col ")) {
|
114
|
114
|
$sqlValues .= "$valor,";
|
115
|
115
|
}
|
|
@@ -119,17 +119,17 @@ class Conexion_Mysql {
|
119
|
119
|
}
|
120
|
120
|
elseif (substr_count(MYSQL_TYPES_STRING, "$tipo_col ")) {
|
121
|
121
|
$valor = $this->sql_escape($valor);
|
122
|
|
- $sqlValues .= "'$valor',";
|
|
122
|
+ $sqlValues .= "'$valor',";
|
123
|
123
|
}
|
124
|
124
|
}
|
125
|
125
|
$cols = rtrim($cols, ',').')';
|
126
|
|
- $sqlValues = rtrim($sqlValues, ',').')';
|
127
|
|
-
|
128
|
|
- // inserta los valores en la DB
|
|
126
|
+ $sqlValues = rtrim($sqlValues, ',').')';
|
|
127
|
+
|
|
128
|
+ // inserta los valores en la DB
|
129
|
129
|
$sql = "INSERT INTO $tabla $cols VALUES $sqlValues";
|
130
|
|
- return $this->ejecutarConsulta($sql);
|
|
130
|
+ return $this->ejecutarConsulta($sql);
|
131
|
131
|
}
|
132
|
|
-
|
|
132
|
+
|
133
|
133
|
/**
|
134
|
134
|
* Modifica un registro en la DB por cada llave->valor en un arreglo.
|
135
|
135
|
* No se debe usar sentencias SQL con esta funcion.
|
|
@@ -143,7 +143,7 @@ class Conexion_Mysql {
|
143
|
143
|
* Falso si ocurrio algun error.
|
144
|
144
|
*/
|
145
|
145
|
function modificarDeFormulario($tabla, $datos, $condicion="") {
|
146
|
|
-
|
|
146
|
+
|
147
|
147
|
if (empty($datos)) {
|
148
|
148
|
$this->merror = "Debes de pasar un arreglo como parametro.";
|
149
|
149
|
return false;
|
|
@@ -152,14 +152,14 @@ class Conexion_Mysql {
|
152
|
152
|
$sql = "UPDATE $tabla SET";
|
153
|
153
|
foreach ($datos as $llave=>$valor) {
|
154
|
154
|
$sql .= " $llave=";
|
155
|
|
-
|
|
155
|
+
|
156
|
156
|
$tipo_col = $this->obtenerTipoCampo($tabla, $llave); // obtiene el tipo de campo
|
157
|
157
|
if (!$tipo_col) return false; // error!
|
158
|
|
-
|
|
158
|
+
|
159
|
159
|
// determina si se necesita poner comillas al valor.
|
160
|
160
|
if (is_null($valor)) {
|
161
|
|
- $sql .= "NULL,";
|
162
|
|
- }
|
|
161
|
+ $sql .= "NULL,";
|
|
162
|
+ }
|
163
|
163
|
elseif (substr_count(MYSQL_TYPES_NUMERIC, "$tipo_col ")) {
|
164
|
164
|
$sql .= "$valor,";
|
165
|
165
|
}
|
|
@@ -169,25 +169,25 @@ class Conexion_Mysql {
|
169
|
169
|
}
|
170
|
170
|
elseif (substr_count(MYSQL_TYPES_STRING, "$tipo_col ")) {
|
171
|
171
|
$valor = $this->sql_escape($valor);
|
172
|
|
- $sql .= "'$valor',";
|
173
|
|
- }
|
|
172
|
+ $sql .= "'$valor',";
|
|
173
|
+ }
|
174
|
174
|
}
|
175
|
175
|
$sql = rtrim($sql, ','); // elimina la ultima coma
|
176
|
176
|
if (!empty($condicion)) $sql .= " WHERE $condicion";
|
177
|
|
-
|
|
177
|
+
|
178
|
178
|
// modifica los valores
|
179
|
179
|
return $this->ejecutarConsulta($sql);
|
180
|
180
|
}
|
181
|
|
-
|
|
181
|
+
|
182
|
182
|
/**
|
183
|
|
- * Obtiene la informacion sobre un campo usando la funcion mysql_fetch_field.
|
|
183
|
+ * Obtiene la informacion sobre un campo usando la funcion mysql_fetch_field.
|
184
|
184
|
*
|
185
|
185
|
* @param mixed $tabla El nombre de la tabla en la BD.
|
186
|
186
|
* @param string $campo El campo del que se desea la informacion.
|
187
|
187
|
* @return array Un arreglo con la informacion del campo o false si hay algun error.
|
188
|
188
|
*/
|
189
|
189
|
function obtenerTipoCampo($tabla, $campo) {
|
190
|
|
-
|
|
190
|
+
|
191
|
191
|
$r = mysql_query("SELECT $campo FROM $tabla");
|
192
|
192
|
if (!$r) {
|
193
|
193
|
$this->merror = mysql_error();
|
|
@@ -200,9 +200,9 @@ class Conexion_Mysql {
|
200
|
200
|
return false;
|
201
|
201
|
}
|
202
|
202
|
mysql_free_result($r);
|
203
|
|
- return $ret;
|
|
203
|
+ return $ret;
|
204
|
204
|
}
|
205
|
|
-
|
|
205
|
+
|
206
|
206
|
/**
|
207
|
207
|
* Convierte una fecha en formato para DB.
|
208
|
208
|
*
|
|
@@ -214,7 +214,7 @@ class Conexion_Mysql {
|
214
|
214
|
if(eregi("^([0-9]+)$",$valor)){
|
215
|
215
|
$valor = date("Y-m-d H:i:s",$valor);
|
216
|
216
|
}else{
|
217
|
|
- // Estariá en el formato strtotime()
|
|
217
|
+ // Estari� en el formato strtotime()
|
218
|
218
|
$valor = date("Y-m-d H:i:s",strtotime($valor));
|
219
|
219
|
}
|
220
|
220
|
}
|
|
@@ -222,56 +222,56 @@ class Conexion_Mysql {
|
222
|
222
|
/* if (gettype($valor) == 'string') $valor = strtotime($valor);
|
223
|
223
|
return date('Y-m-d H:i:s', $valor);
|
224
|
224
|
*/
|
225
|
|
- }
|
|
225
|
+ }
|
226
|
226
|
|
227
|
227
|
/**
|
228
|
228
|
* Obtiene el registro obtenido de una consulta.
|
229
|
229
|
*/
|
230
|
|
- function obtenerRegistro() {
|
231
|
|
- return mysql_fetch_assoc($this->mid_consulta);
|
232
|
|
- }
|
233
|
|
-
|
|
230
|
+ function obtenerRegistro() {
|
|
231
|
+ return mysql_fetch_assoc($this->mid_consulta);
|
|
232
|
+ }
|
|
233
|
+
|
234
|
234
|
/**
|
235
|
|
- * Devuelve el número de campos de una consulta.
|
|
235
|
+ * Devuelve el n�mero de campos de una consulta.
|
236
|
236
|
*/
|
237
|
|
- function contarCampos() {
|
238
|
|
- return mysql_num_fields($this->mid_consulta);
|
239
|
|
- }
|
240
|
|
-
|
|
237
|
+ function contarCampos() {
|
|
238
|
+ return mysql_num_fields($this->mid_consulta);
|
|
239
|
+ }
|
|
240
|
+
|
241
|
241
|
/**
|
242
|
|
- * Devuelve el número de registros de una consulta.
|
|
242
|
+ * Devuelve el n�mero de registros de una consulta.
|
243
|
243
|
*/
|
244
|
|
- function contarRegistros() {
|
245
|
|
- return @mysql_num_rows($this->mid_consulta);
|
246
|
|
- }
|
247
|
|
-
|
|
244
|
+ function contarRegistros() {
|
|
245
|
+ return @mysql_num_rows($this->mid_consulta);
|
|
246
|
+ }
|
|
247
|
+
|
248
|
248
|
/**
|
249
|
249
|
* Devuelve el nombre de un campo de una consulta.
|
250
|
250
|
*/
|
251
|
|
- function obtenerNombreCampo($numero_campo) {
|
252
|
|
- return mysql_field_name($this->mid_consulta, $numero_campo);
|
253
|
|
- }
|
254
|
|
-
|
|
251
|
+ function obtenerNombreCampo($numero_campo) {
|
|
252
|
+ return mysql_field_name($this->mid_consulta, $numero_campo);
|
|
253
|
+ }
|
|
254
|
+
|
255
|
255
|
/**
|
256
|
256
|
* Muestra los datos de una consulta (para debug).
|
257
|
257
|
*/
|
258
|
258
|
function verConsulta() {
|
259
|
|
- echo "<table border=1>\n";
|
260
|
|
- // mostramos los nombres de los campos
|
261
|
|
- for ($i = 0; $i < $this->contarCampos(); $i++) {
|
262
|
|
- echo "<td><b>".$this->obtenerNombreCampo($i)."</b></td>\n";
|
263
|
|
- }
|
264
|
|
- echo "</tr>\n";
|
|
259
|
+ echo "<table border=1>\n";
|
|
260
|
+ // mostramos los nombres de los campos
|
|
261
|
+ for ($i = 0; $i < $this->contarCampos(); $i++) {
|
|
262
|
+ echo "<td><b>".$this->obtenerNombreCampo($i)."</b></td>\n";
|
|
263
|
+ }
|
|
264
|
+ echo "</tr>\n";
|
265
|
265
|
// mostrarmos los registros
|
266
|
|
- while ($row = mysql_fetch_row($this->mid_consulta)) {
|
267
|
|
- echo "<tr> \n";
|
268
|
|
- for ($i = 0; $i < $this->contarCampos(); $i++) {
|
269
|
|
- echo "<td>".$row[$i]."</td>\n";
|
270
|
|
- }
|
271
|
|
- echo "</tr>\n";
|
272
|
|
- }
|
|
266
|
+ while ($row = mysql_fetch_row($this->mid_consulta)) {
|
|
267
|
+ echo "<tr> \n";
|
|
268
|
+ for ($i = 0; $i < $this->contarCampos(); $i++) {
|
|
269
|
+ echo "<td>".$row[$i]."</td>\n";
|
|
270
|
+ }
|
|
271
|
+ echo "</tr>\n";
|
|
272
|
+ }
|
273
|
273
|
}
|
274
|
|
-
|
|
274
|
+
|
275
|
275
|
/**
|
276
|
276
|
* Cierra la conexion a la BD.
|
277
|
277
|
*/
|
|
@@ -289,6 +289,6 @@ class Conexion_Mysql {
|
289
|
289
|
$value = addslashes($value);
|
290
|
290
|
}
|
291
|
291
|
return $value;
|
292
|
|
- }
|
|
292
|
+ }
|
293
|
293
|
} //fin de la Clase conexion_mysql
|
294
|
294
|
?>
|