コード例 #1
0
ファイル: Model.class.php プロジェクト: Jtgadbois/Pedadida
	function save(){

		$classname = get_class($this) ;
		$tablename = table(strtolower( $classname."s" )) ; //

		$sql_into  =  '(' ;
		$sql_values = "(";
		$has_attr = false ; 
		foreach ( get_class_vars($classname) as $varname => $null) {
			if ( is_array($this->$varname) ) {  //TODO
				// es una coleccion y no esta mapeada en la tabla. Mandaar a persistir a cada una 
				//TODO			
			}else {
			
				$has_attr = true ;
				// Bueno , aca lo mas probale es que cada atributo tenga su currespondiente en la table structure.
				// Entonces estaria de toque . . .
				$fieldname = ucfirst($varname) ; // standart de nuestra base ej BookId
				$sql_into .= "$fieldname," ;
		
				$value = $this->$varname;
		 		if ( !isset($value) ) {
		 			$sql_values .= 'null';
		 		}
				if  ( is_string($value) )  {
					$sql_values.="'$value'" ;
				}elseif (is_bool($value)) {
					$sql_values .=  ($value)?1:0 ;
					
				}else {
					$sql_values .= $value ;
				}	
				$sql_values.="," ; 
			}		
		}
		if ( $has_attr )  {  
			//  tengo que sacar la ultima coma y agragarle un espacio al final.
			$sql_into = substr($sql_into,0,-1).") " ;
			$sql_values = substr($sql_values,0,-1).") " ;
		}	
		
		// genero el sql ;
		$sql = "INSERT INTO $tablename ".$sql_into." VALUES " .$sql_values ;
		
		if  ( !mysql_query($sql) ) {
			$err = new GsError(234,"Error saving book") ;
			if ( $err->isDebugging() ) {
				$err->addContentElement("Table" , $tablename ) ;
				$err->addContentElement("SQL Error" , mysql_error() ) ;
				$err->addContentElement("SQL: ", $sql ) ;
			}	
			throw $err ; 
		}
	}
コード例 #2
0
		function deleteBook($bookId) {
			if (@mysql_query("START TRANSACTION") &&
					@mysql_query("DELETE FROM `" . table('cells') . "` WHERE `SheetId` IN (SELECT `SheetId` FROM `" . table('sheets') . "` WHERE `BookId` = $bookId)") &&
					@mysql_query("DELETE FROM `" . table('mergedCells') . "` WHERE `SheetId` IN (SELECT `SheetId` FROM `" . table('sheets') . "` WHERE `BookId` = $bookId)") &&
					@mysql_query("DELETE FROM `" . table('rows') . "` WHERE `SheetId` IN (SELECT `SheetId` FROM `" . table('sheets') . "` WHERE `BookId` = $bookId)") &&
					@mysql_query("DELETE FROM `" . table('columns') . "` WHERE `SheetId` IN (SELECT `SheetId` FROM `" . table('sheets') . "` WHERE `BookId` = $bookId)") &&
					@mysql_query("DELETE FROM `" . table('sheets') . "` WHERE `BookId` = $bookId") &&
					@mysql_query("DELETE FROM `" . table('fontStyles') . "` WHERE `BookId` = $bookId") &&
					@mysql_query("DELETE FROM `" . table('books') . "` WHERE `BookId` = $bookId") &&
					@mysql_query("COMMIT")) {
//				echo "{'Error':0,'Message':'Book $bookId deleted succesfully','Data':{'BookId':".$bookId."}}";
//				throw new Success('Book deleted succesfully',"{'BookId':$bookId}");
			} else {
				$error = new GsError(302,"Error deleting book.");
				if($error->isDebugging()){
					$err = str_replace("'", '"', mysql_error());
					$error->addContentElement("BookId",$bookId);
					$error->addContentElement("MySql Error",$err);
				}
				throw $error;					
			}
		}
コード例 #3
0
ファイル: Book.class.php プロジェクト: Jtgadbois/Pedadida
		/**
		 * Saves the book into de database.
		 * If the id isn't setted, automatically assigns one
		 *
		 **/
		public function save(){
			
			
			$update = false ; 
			$hasErrors = false;

			if(!isset($this->userId))
				$this->userId = 1;    //TODO: Remove only for debugging user must be always setted (logged user)
			
			$sql = "INSERT INTO ".table('books'). " (BookId, BookName, UserId) VALUES ($this->bookId,'$this->bookName',$this->userId)";


			if (isset($this->bookId)) { // Edit book..
				//Check if the the id is correct..
				$res = mysql_query("SELECT BookId FROM ".table('books'). " where BookId=$this->bookId");
				if(!$res){
					$error = new GsError(302,"Error loading book.");
					if($error->isDebugging()){
						$error->addContentElement("BookId",$BookId);
						$err = str_replace("'", '"', mysql_error());
						$error->addContentElement("MySql Error",$err);
					}
					throw $error;					
					$hasErrors = true;
				}

				$row = mysql_fetch_object($res);
				if (!$row) {
					//ERROR: trying to save a book that does exist. Must have null value the bookid
					if(!mysql_query($sql)){
						$error = new GsError(302,"Error saving book. Book don't exists");
						if($error->isDebugging()){
							$error->addContentElement("BookId",$BookId);
							$err = str_replace("'", '"', mysql_error());
							$error->addContentElement("MySql Error",$err);
						}
						throw $error;					
					}

				}else {
				// OK: Delete.. and save it again
					$update = true;
					mysql_query("START TRANSACTION");
					$book_tmp = new Book();
					$book_tmp->load($this->bookId);
					$book_tmp->delete(true);


					if(!mysql_query($sql)){
						$error = new GsError(302,"Error saving book. Book don't exists");
						if($error->isDebugging()){
							$error->addContentElement("BookId",$BookId);
							$err = str_replace("'", '"', mysql_error());
							$error->addContentElement("MySql Error",$err);
						}
						throw $error;					
						$hasErrors = true;
					}

				}

			}else { 
				//SAVE AS...
				
				$sql = "INSERT INTO ".table('books'). " (BookName, UserId) VALUES ('$this->bookName',$this->userId)";
				$query = mysql_query($sql);
				if($query)
					$this->bookId= mysql_insert_id();
				else{
					
					$error = new GsError(302,"Error saving book.");
					if($error->isDebugging()){
						$error->addContentElement("BookId",$BookId);
						$err = str_replace("'", '"', mysql_error());
						$error->addContentElement("MySql Error",$err);
					}
					throw $error;					
					
					$hasErrors = true;
				}
			}
			
			//COMMON CODE..
			if(!$hasErrors){
				foreach ($this->sheets as $sheet) {
					$sheet->bookId = $this->bookId;
					$hasErrors = $sheet->save();
				}
			}

			if(!$hasErrors){
				foreach ($this->fontStyles as $fontStyle) {
					$fontStyle->bookId = $this->bookId;
					$hasErrors = $fontStyle->save();
				}
			}
			
			if(!$hasErrors){
				foreach ($this->layoutStyles as $layoutStyle) {
					$layoutStyle->bookId = $this->bookId;
					$hasErrors = $layoutStyle->save();
				}
			}
			
			
			if ($update) {
				//if update means that a transaction was started.. 
				//so check for errors and commit if ok
				 
				if (!$hasErrors)
					mysql_query("COMMIT");
				else 
					mysql_query("ROLLBACK") ;	
			}	
			return $hasErrors;
		}
コード例 #4
0
 /**
  * Enter description here...
  *
  * @return QueryResult
  */
 public function save()
 {
     $sql = sprintf("INSERT INTO " . table('cells') . " (SheetId, DataColumn,DataRow,CellFormula,FontStyleId,LayoutStyleId, CellValue) VALUES (%d,%d,%d,'%s',%d,%d,'%s')", $this->sheetId, $this->dataColumn, $this->dataRow, addslashes($this->cellFormula), $this->fontStyleId, $this->layoutStyleId, addslashes($this->cellValue));
     $result = mysql_query($sql);
     if (!$result) {
         $error = new GsError(345, "Error saving");
         if ($error->isDebugging()) {
             $error->addContentElement("descrption", "Saving cell");
             $error->addContentElement("MySqlError", mysql_error());
             $error->addContentElement("MySqlQuery", $sql);
         }
         throw $error;
     }
 }
コード例 #5
0
ファイル: index.php プロジェクト: Jtgadbois/Pedadida
		while($more_params){
			if (isset($_REQUEST[$param_prefix.$i]) ) {				
				$param = filterInput($_REQUEST[$param_prefix.$i]) ;
				array_push($params,$param);
				$i++;
			}else {
				$more_params = false ;
			}
		}
		return $params;
	}

	$connection  = new Connection();

	if(!isset($_REQUEST['c'])){
		$err = new GsError(201,"Bad Command Request");
		if($err->isDebugging())
			$err->addContentElement("Param Required","Controller is needed, c=ControllerName should be passed");
		throw $err;
	}
	
	$controller = $_REQUEST['c']."Controller";
	$method = $_REQUEST['m'];
	$params = splitParameters("param");
	
	
	
	if (! validateCall($controller, $method, $params) ){
		die ("invalid class/method/params") ;
	}