fetch_array(MYSQLI_NUM); return $assoc_array['0']; } public function assoc_array($_query) { //var_dump($_query); $result = self::query($_query); $ret_array = array(); while ($item = $result->fetch_assoc()) { $ret_array[] = $item; } return $ret_array; } public function insert_into($table, $value_array, $need_apostrophs = true) { //a beszúrt rekord id-ját adja vissza $fields = ''; $values = ''; $i = 0; $n = count($value_array); foreach ($value_array as $key => $value) { $fields .= $key; $need_apostrophs = $value!='null'; $values .= ($need_apostrophs ? "'" : "") . $value . ($need_apostrophs ? "'" : ""); if ($i!=($n-1)) { $fields .= ', '; $values .= ', '; } $i++; } $this->_query = 'insert into ' . $table . ' (' . $fields . ') values (' . $values . ');'; //var_dump($this->_query); self::query($this->_query); return $this->insert_id; } public function update_table($table, $value_array, $conditions, $need_apostrophs = true) { $this->_query = "update " . $table . " set "; $n = count($value_array); $i=0; foreach ($value_array as $key => $val) { $need_apostrophs = $val!='null'; $this->_query .= $key . "=" . ($need_apostrophs ? "'" : "") . $val . ($need_apostrophs ? "'" : "") . ($i!=$n-1 ? ", " : ""); $i++; } $this->_query .= " where "; $n = count($conditions); $i=0; foreach ($conditions as $key_ => $val_) { $this->_query .= $key_ . "='" . $val_ . "'" . ($i!=$n-1 ? " and " : ";"); $i++; } //var_dump($this->_query); self::query($this->_query); } public function num_of_rows($_query) { $result = self::query($_query); return is_object($result)?$result->num_rows:0; } public function execute_query($_query) { //var_dump($_query); return self::query($_query); } function export_database($tables=false, $backup_name=false ) { $name = "badminton_coach"; $this->query("SET NAMES 'utf8'"); $queryTables = $this->query('SHOW TABLES'); while($row = $queryTables->fetch_row()) { $target_tables[] = $row[0]; } if($tables !== false) { $target_tables = array_intersect( $target_tables, $tables); } foreach($target_tables as $table) { $result = $this->query('SELECT * FROM '.$table); $fields_amount = $result->field_count; $rows_num=$this->affected_rows; $res = $this->query('SHOW CREATE TABLE '.$table); $TableMLine = $res->fetch_row(); $content = (!isset($content) ? '' : $content) . "\n\n".$TableMLine[1].";\n\n"; for ($i = 0, $st_counter = 0; $i < $fields_amount; $i++, $st_counter=0) { while($row = $result->fetch_row()) { //when started (and every after 100 command cycle): if ($st_counter%100 == 0 || $st_counter == 0 ) { $content .= "\nINSERT INTO ".$table." VALUES"; } $content .= "\n("; for($j=0; $j<$fields_amount; $j++) { $row[$j] = str_replace("\n","\\n", addslashes($row[$j]) ); if (isset($row[$j])) { $content .= '"'.$row[$j].'"' ; } else { $content .= '""'; } if ($j<($fields_amount-1)) { $content.= ','; } } $content .=")"; //every after 100 command cycle [or at last line] ....p.s. but should be inserted 1 cycle eariler if ( (($st_counter+1)%100==0 && $st_counter!=0) || $st_counter+1==$rows_num) { $content .= ";"; } else { $content .= ","; } $st_counter=$st_counter+1; } } $content .="\n\n\n"; } //$backup_name = $backup_name ? $backup_name : $name."___(".date('H-i-s')."_".date('d-m-Y').")__rand".rand(1,11111111).".sql"; $backup_name = $backup_name ? $backup_name : $name.".sql"; //header('Content-Type: application/octet-stream'); //header("Content-Transfer-Encoding: Binary"); //header("Content-disposition: attachment; filename=\"".$backup_name."\""); return $content; } } ?>