3 require_once
CORE_PATH .
'libs/db/adapters/pdo.php';
91 $table = addslashes(
"$table");
93 $num = $this->
fetch_one(
"SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '$table'");
95 $schema = addslashes(
"$schema");
96 $num = $this->
fetch_one(
"SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '$table' AND TABLE_SCHEMA = '$schema'");
111 if(isset($params[
'limit']) && is_numeric($params[
'limit'])){
112 $sql_new.=
" LIMIT $params[limit]";
115 if(isset($params[
'offset']) && is_numeric($params[
'offset'])){
116 $sql_new.=
" OFFSET $params[offset]";
130 return $this->
query(
"DROP TABLE IF EXISTS $table");
132 return $this->
query(
"DROP TABLE $table");
150 $create_sql =
"CREATE TABLE $table (";
151 if(!is_array($definition)){
152 new KumbiaException(
"Definición invalida para crear la tabla '$table'");
155 $create_lines = array();
157 $unique_index = array();
161 foreach($definition as $field => $field_def){
162 if(isset($field_def[
'not_null'])){
163 $not_null = $field_def[
'not_null'] ?
'NOT NULL' :
'';
167 if(isset($field_def[
'size'])){
168 $size = $field_def[
'size'] ?
'('.$field_def[
'size'].
')' :
'';
172 if(isset($field_def[
'index'])){
173 if($field_def[
'index']){
174 $index[] =
"INDEX(`$field`)";
177 if(isset($field_def[
'unique_index'])){
178 if($field_def[
'unique_index']){
179 $index[] =
"UNIQUE(`$field`)";
182 if(isset($field_def[
'primary'])){
183 if($field_def[
'primary']){
184 $primary[] =
"`$field`";
187 if(isset($field_def[
'auto'])){
188 if($field_def[
'auto']){
189 $field_def[
'extra'] = isset($field_def[
'extra']) ? $field_def[
'extra'].
" AUTO_INCREMENT" :
"AUTO_INCREMENT";
192 if(isset($field_def[
'extra'])){
193 $extra = $field_def[
'extra'];
197 $create_lines[] =
"`$field` ".$field_def[
'type'].$size.
' '.$not_null.
' '.$extra;
199 $create_sql.= join(
',', $create_lines);
200 $last_lines = array();
202 $last_lines[] =
'PRIMARY KEY('.join(
",", $primary).
')';
205 $last_lines[] = join(
',', $index);
207 if(count($unique_index)){
208 $last_lines[] = join(
',', $unique_index);
210 if(count($last_lines)){
211 $create_sql.=
','.join(
',', $last_lines).
')';
213 return $this->
query($create_sql);
234 $describe = $this->
fetch_all(
"DESCRIBE `$table`");
236 $describe = $this->
fetch_all(
"DESCRIBE `$schema`.`$table`");
238 $final_describe = array();
239 foreach($describe as $key => $value){
240 $final_describe[] = array(
241 "Field" => $value[
"field"],
242 "Type" => $value[
"type"],
243 "Null" => $value[
"null"],
244 "Key" => $value[
"key"]
247 return $final_describe;