<?php
include(dirname(__FILE__) . "/lib/common_include.php");
//パラメータの整形
//パラメータは

//db_id
//table_id
//row_id
//col[]
//value[]

//として入ってくるので、これを変形する。
//$id(db_id)
//$table_id(table_id)
//$rowid(row_id)
//$params=[
//	col=>col,
//	value=>value,
//]
//の形にする。

function main(){
	//基本パラメータのチェック
	$id = null;
	$table_id = null;
	$rowid = null;

	if( array_key_exists('db_id' , $_POST ) ){
		$id = $_POST['db_id'];
		if( !is_string($id) ){
			errLog('Post["db_id"] is not string');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		}
	}else{
		errLog('Post["db_id"] is not Found');
		return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
	}
	if( array_key_exists('table_id' , $_POST ) ){
		$table_id = $_POST['table_id'];
		if( !is_string($table_id) ){
			errLog('Post["table_id"] is not string');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		}
	}else{
		errLog('Post["table_id"] is not Found');
		return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
	}
	if( array_key_exists('row_id' , $_POST ) ){
		$rowid = $_POST['row_id'];
		if( !is_string($rowid)){
			errLog('Post["row_id"] is not string');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		}
		if( $rowid == '' ){
			errLog('Post["row_id"] is null');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		}
		if( !is_numeric( $rowid ) ){
			errLog('Post["row_id"] is not numeric');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		}
		$rowid = floatval($rowid);
	}else{
		errLog('Post["row_id"] is not Found');
		return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
	}

	//列定義パラメータのチェック
	$aryCol =[];
	$aryValue =[];

	if( array_key_exists('col' , $_POST ) ){
		$aryCol = $_POST[ 'col' ];
		if( !is_array($aryCol) ){
			errLog('Post["col"] is not array');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		}
	}
	if( array_key_exists('value' , $_POST ) ){
		$aryValue = $_POST[ 'value' ];
		if( !is_array($aryValue) ){
			errLog('Post["value"] is not array');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		}
	}

	$params = [];
	$aryKeyCol = array_keys($aryCol);
	$aryKeyVal = array_keys($aryValue);
	if( $aryKeyCol !== $aryKeyVal ){
		errLog('not match the Post["col"] and Post["value"]');
		return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
	}

	foreach( $aryCol as $idx => $col ){
		if( !is_string($col) ){
			errLog('Post["col"]['.$idx.'] is not string');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		};
		if( $col == null || $col == '' ){
			errLog('Post["col"]['.$idx.'] is nothing');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		};
		$params[ $idx ] = [
			"col"=>$col,
		];
	}
	foreach( $aryValue as $idx => $value ){
		if( !is_string($value) && $value !== null ){
			errLog('Post["value"]['.$idx.'] is not string');
			return CC\RES::RES_SYSERRORS['ILLEGAL_PARAM'];
		};
		if( $value == null ){
			$value = '';
		}
		$params[ $idx ]['value'] = $value;
	}



	$db = new usrDb($id);
	if( ! $db->isEnable() ){
		errLog(
			'DB INITIALIZE ERROR'
		);
		return $db->error;
	}else{
		return $db->updateSingle($table_id,$params,$rowid);
	};
}

C\res( main() );


