120 if (!extension_loaded(
'mysqli'))
throw new KumbiaException(
'Debe cargar la extensión de PHP llamada php_mysqli');
124 if (mysqli_connect_error ())
throw new KumbiaException(mysqli_connect_error());
126 if (isset(
$config[
'charset'])) $this->id_connection->set_charset(
$config[
'charset']);
138 $this->
debug($sql_query);
143 $this->last_query = $sql_query;
144 if ($result_query = mysqli_query($this->id_connection, $sql_query)) {
145 $this->last_result_query = $result_query;
146 return $result_query;
159 if ($this->id_connection) {
160 return mysqli_close($this->id_connection);
173 if (!$result_query) {
175 if (!$result_query) {
179 return mysqli_fetch_array($result_query, $opt);
197 if (!$result_query) {
199 if (!$result_query) {
203 if (($number_rows = mysqli_num_rows($result_query)) !==
false) {
220 if (!$result_query) {
222 if (!$result_query) {
226 if (($fieldName = mysqli_field_seek($result_query, $number)) !==
false) {
227 $field = mysqli_fetch_field($result_query);
243 if (!$result_query) {
245 if (!$result_query) {
249 if (($success = mysqli_data_seek($result_query, $number)) !==
false) {
264 if (($numberRows = mysqli_affected_rows($this->id_connection)) !==
false) {
278 $this->last_error = mysqli_error($this->id_connection) ? mysqli_error($this->id_connection) :
"[Error Desconocido en MySQL: $err]";
279 $this->last_error.= $err;
293 return mysqli_errno($this->id_connection);
303 return mysqli_insert_id($this->id_connection);
314 $table = addslashes(
"$table");
316 $num = $this->
fetch_one(
"select count(*) from information_schema.tables where table_name = '$table'");
318 $schema = addslashes(
"$schema");
319 $num = $this->
fetch_one(
"select count(*) from information_schema.tables where table_name = '$table' and table_schema = '$schema'");
335 if (isset($params[
'limit']) && is_numeric($params[
'limit'])) {
336 $sql_new.=
" LIMIT $params[limit]";
339 if (isset($params[
'offset']) && is_numeric($params[
'offset'])) {
340 $sql_new.=
" OFFSET $params[offset]";
355 return $this->
query(
"DROP TABLE IF EXISTS $table");
357 return $this->
query(
"DROP TABLE $table");
376 $create_sql =
"CREATE TABLE $table (";
377 if (!is_array($definition)) {
378 throw new KumbiaException(
"Definición invalida para crear la tabla '$table'");
380 $create_lines = array();
382 $unique_index = array();
386 foreach ($definition as $field => $field_def) {
387 if (isset($field_def[
'not_null'])) {
388 $not_null = $field_def[
'not_null'] ?
'NOT NULL' :
'';
392 if (isset($field_def[
'size'])) {
393 $size = $field_def[
'size'] ?
'(' . $field_def[
'size'] .
')' :
'';
397 if (isset($field_def[
'index'])) {
398 if ($field_def[
'index']) {
399 $index[] =
"INDEX(`$field`)";
402 if (isset($field_def[
'unique_index'])) {
403 if ($field_def[
'unique_index']) {
404 $index[] =
"UNIQUE(`$field`)";
407 if (isset($field_def[
'primary'])) {
408 if ($field_def[
'primary']) {
409 $primary[] =
"`$field`";
412 if (isset($field_def[
'auto'])) {
413 if ($field_def[
'auto']) {
414 $field_def[
'extra'] = isset($field_def[
'extra']) ? $field_def[
'extra'] .
" AUTO_INCREMENT" :
"AUTO_INCREMENT";
417 if (isset($field_def[
'extra'])) {
418 $extra = $field_def[
'extra'];
422 $create_lines[] =
"`$field` " . $field_def[
'type'] . $size .
' ' . $not_null .
' ' . $extra;
424 $create_sql.= join(
',', $create_lines);
425 $last_lines = array();
426 if (count($primary)) {
427 $last_lines[] =
'PRIMARY KEY(' . join(
",", $primary) .
')';
430 $last_lines[] = join(
',', $index);
432 if (count($unique_index)) {
433 $last_lines[] = join(
',', $unique_index);
435 if (count($last_lines)) {
436 $create_sql.=
',' . join(
',', $last_lines) .
')';
438 return $this->
query($create_sql);
460 return $this->
fetch_all(
"DESCRIBE `$table`");
462 return $this->
fetch_all(
"DESCRIBE `$schema`.`$table`");