= 5.1.0 required by date()
if(file_exists(".config.php")) include(".config.php");
SEF('DEBUG_S');
SEF("ZAP_SQL");
SEF("USERS_COLUMN_INIT");
SEF("AUTHORIZE_USER");
SEF("AUTHORIZE_USER_LOGIN");
//SEF("AUTHORIZE_USER_BY_AUTH_MODULE");
//SEF("AUTHORIZE_USER_LOGIN_BY_AUTH_MODULE");
SEF("GETFORMITEM");
SEF("T_WORKPOINTS_USER_SELECT");
require_once dirname(__FILE__) . '/' . 'se-lib' . '/' . 'Lib.php';
Lib::loadClass('V');
Lib::loadClass('User');
Lib::loadClass('App');
Lib::loadClass('DB');
$conn = DB::connect();
$task = V::get('task', '', $_REQUEST);
if ($task) {
$con = new SyncDB();
$task_fun = 'task_'.$task;
if (method_exists($con, $task_fun)) {
$con->$task_fun();
} else {
die('task not exists');
}
} else {
die('no task');
}
// ==================== Sync DB ===================
class SyncDB {
var $output;
function __construct() {
$this->output = V::get('output', '', $_REQUEST);
}
function write( $str ) {
if ($this->output) {
error_log($str, 3, $this->output);
} else {
echo $str;
}
}
function task_export_csv() {
$tbl = V::get('tbl', '', $_REQUEST);
if (!$tbl) return;
$sql = new stdClass();
$sql->fields = array();
$sql->limit = V::get('limit', '', $_REQUEST);
$sql->offset = V::get('offset', '', $_REQUEST);
$sql->out_where = 'where 1=1';
$sql->out_limit = '';
//if (($sql->limit && $sql->offset)? ' limit '.$sql->limit : '');
/*
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
*
INTO OUTFILE '".$sql->out_file."'
FIELDS TERMINATED BY ',' ENCLOSED BY '\"'
LINES TERMINATED BY '\\r\\n';
*/
$this->output = dirname( __FILE__ ). '/db-sync-tmp/'.'sync_db_'.session_id().'-'.$tbl.'.csv';
if (file_exists($this->output)) {
unlink($this->output);
}
$query = "select t.*
from `".$tbl."` as t
".$sql->out_where."
".$sql->out_limit."
";
$res = DB::query( $query, false );
$csv_sep = ',';
$row_cols = array();
while ($r = DB::fetch( $res )) {
if (empty($row_cols)) {
$row_cols = array_keys(get_object_vars($r));
$this->write();
$first = true;
foreach ($row_cols as $field) {
if ($first) {
$first = false;
} else {
$this->write($csv_sep);
}
$this->write('"'.str_replace('"', '""', $field).'"');
}//end foreachs
$this->write("\n");
}
$first = true;
foreach ($row_cols as $field) {
if ($first) {
$first = false;
} else {
$this->write($csv_sep);
}
$this->write('"'.str_replace('"', '""', $r->$field).'"');
}//end foreach
$this->write("\n");
}
}
function task_show_tables() {
$field = 'Tables_in_'."SES_USERS2";
$sql = "show tables; ";
$res = DB::query( $sql );
while ($r = DB::fetch( $res )) {
if (isset($r->$field)) {
echo'
'. $r->$field;
echo' $field.'">'."export cvs".'';
} else {
echo'
Unknown row=';print_r($r);echo''; } } } }// class