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 ; } }
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; } }
/** * 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; }
/** * 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; } }
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") ; }