120 if (!extension_loaded(
'mysql')) {
121 throw new KumbiaException(
'Debe cargar la extensión de PHP llamada php_mysql');
125 if ($this->id_connection = mysql_connect(
"{$config['host']}:{$config['port']}",
$config[
'username'],
$config[
'password'],
true)) {
127 if (!mysql_select_db(
$config[
'name'], $this->id_connection)) {
132 if (isset(
$config[
'charset'])) mysql_query(
"SET NAMES {$config['charset']}");
148 $this->
debug($sql_query);
153 $this->last_query = $sql_query;
154 if ($result_query = mysql_query($sql_query, $this->id_connection)) {
155 $this->last_result_query = $result_query;
156 return $result_query;
167 if ($this->id_connection) {
168 return mysql_close();
183 if (!$result_query) {
185 if (!$result_query) {
189 return mysql_fetch_array($result_query, $opt);
208 if (!$result_query) {
210 if (!$result_query) {
214 if (($number_rows = mysql_num_rows($result_query)) !==
false) {
231 if (!$result_query) {
233 if (!$result_query) {
237 if (($fieldName = mysql_field_name($result_query, $number)) !==
false) {
253 if (!$result_query) {
255 if (!$result_query) {
259 if (($success = mysql_data_seek($result_query, $number)) !==
false) {
274 if (($numberRows = mysql_affected_rows()) !==
false) {
288 if (!$this->id_connection) {
289 $this->last_error = mysql_error() ? mysql_error() :
"[Error Desconocido en MySQL: $err]";
295 $this->last_error = mysql_error() ? mysql_error() :
"[Error Desconocido en MySQL: $err]";
296 $this->last_error.= $err;
310 return mysql_errno();
320 return mysql_insert_id($this->id_connection);
331 $table = addslashes(
"$table");
333 $num = $this->
fetch_one(
"SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '$table'");
335 $schema = addslashes(
"$schema");
336 $num = $this->
fetch_one(
"SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '$table' AND TABLE_SCHEMA = '$schema'");
352 if (isset($params[
'limit']) && is_numeric($params[
'limit'])) {
353 $sql_new.=
" LIMIT $params[limit]";
356 if (isset($params[
'offset']) && is_numeric($params[
'offset'])) {
357 $sql_new.=
" OFFSET $params[offset]";
372 return $this->
query(
"DROP TABLE IF EXISTS $table");
374 return $this->
query(
"DROP TABLE $table");
393 $create_sql =
"CREATE TABLE $table (";
394 if (!is_array($definition)) {
395 throw new KumbiaException(
"Definición invalida para crear la tabla '$table'");
397 $create_lines = array();
399 $unique_index = array();
403 foreach ($definition as $field => $field_def) {
404 if (isset($field_def[
'not_null'])) {
405 $not_null = $field_def[
'not_null'] ?
'NOT NULL' :
'';
409 if (isset($field_def[
'size'])) {
410 $size = $field_def[
'size'] ?
'(' . $field_def[
'size'] .
')' :
'';
414 if (isset($field_def[
'index'])) {
415 if ($field_def[
'index']) {
416 $index[] =
"INDEX(`$field`)";
419 if (isset($field_def[
'unique_index'])) {
420 if ($field_def[
'unique_index']) {
421 $index[] =
"UNIQUE(`$field`)";
424 if (isset($field_def[
'primary'])) {
425 if ($field_def[
'primary']) {
426 $primary[] =
"`$field`";
429 if (isset($field_def[
'auto'])) {
430 if ($field_def[
'auto']) {
431 $field_def[
'extra'] = isset($field_def[
'extra']) ? $field_def[
'extra'] .
" AUTO_INCREMENT" :
"AUTO_INCREMENT";
434 if (isset($field_def[
'extra'])) {
435 $extra = $field_def[
'extra'];
439 $create_lines[] =
"`$field` " . $field_def[
'type'] . $size .
' ' . $not_null .
' ' . $extra;
441 $create_sql.= join(
',', $create_lines);
442 $last_lines = array();
443 if (count($primary)) {
444 $last_lines[] =
'PRIMARY KEY(' . join(
",", $primary) .
')';
447 $last_lines[] = join(
',', $index);
449 if (count($unique_index)) {
450 $last_lines[] = join(
',', $unique_index);
452 if (count($last_lines)) {
453 $create_sql.=
',' . join(
',', $last_lines) .
')';
455 return $this->
query($create_sql);
477 return $this->
fetch_all(
"DESCRIBE `$table`");
479 return $this->
fetch_all(
"DESCRIBE `$schema`.`$table`");
492 if (!$result_query) {
495 return mysql_fetch_object($result_query, $class);