Generate - Generate Files Safe - Generate Files Overwrite _%s = $newvalue;%s',$septspace,$row2['Field'],$linebreak); $setters .= sprintf('%sreturn;%s',$septspace,$linebreak); $setters .= sprintf('%s}%s',$quadspace,$linebreak); $required = 0; } else { $setters .= sprintf('%sif(is_null($newvalue)) {%s',$quadspace,$linebreak); $setters .= sprintf('%sthrow new Exception("Value cannot be null - %s");%s}%s',$septspace,$row2['Field'],"\r\n".$quadspace,$linebreak); } // if text if($row2['Type'] == 'text') { $getters .= sprintf('%sfunction get%s() {%s',$doublespace,$row2['Field'],$linebreak); $getters .= sprintf('%sreturn $this->_%s;%s}%s',$quadspace,$row2['Field'],"\r\n".$doublespace,$linebreak); $setters .= sprintf('%sif(gettype($newvalue) != "string") {%s',$quadspace,$linebreak); $setters .= sprintf('%sthrow new Exception("Value not string - ".$newvalue);%s}%s',$septspace,"\r\n".$quadspace,$linebreak); $setters .= sprintf('%s$this->_%s = $newvalue;%s',$quadspace,$row2['Field'],$linebreak); $setters .= sprintf('%s}%s',$doublespace,$linebreak); $values[] = '?'; $inserttype .= 's'; $type = 'anything'; $htmltype = 'textarea'; } else // if int if(strpos($row2['Type'],'int') === 0) { $getters .= sprintf('%sfunction get%s() {%s',$doublespace,$row2['Field'],$linebreak); $getters .= sprintf('%sreturn (int)$this->_%s;%s}%s',$quadspace,$row2['Field'],"\r\n".$doublespace,$linebreak); $count = (int)substr($row2['Type'],strpos($row2['Type'],'(')+1,strpos($row2['Type'],')')-strpos($row2['Type'],'(')-1); $setters .= sprintf('%sif(gettype($newvalue) != "integer") {%s',$quadspace,$linebreak); $setters .= sprintf('%sthrow new Exception("Value not integer - ".$newvalue);%s}%s',$septspace,"\r\n".$quadspace,$linebreak); $setters .= sprintf('%sif(strlen($newvalue) > %s) {%s',$quadspace,$count,$linebreak); $setters .= sprintf('%sthrow new Exception("Value size larger then then - %s - ".$newvalue);%s}%s',$septspace,$count,$linebreak.$quadspace,$linebreak); $setters .= sprintf('%s$this->_%s = (int)$newvalue;%s',$quadspace,$row2['Field'],$linebreak); $setters .= sprintf('%s}%s',$doublespace,$linebreak); $values[] = '?'; $inserttype .= 'i'; $type = 'integer'; $htmltype = 'input'; } else // if varchar if(strpos($row2['Type'],'varchar') === 0) { $getters .= sprintf('%sfunction get%s() {%s',$doublespace,$row2['Field'],$linebreak); $getters .= sprintf('%sreturn $this->_%s;%s}%s',$quadspace,$row2['Field'],"\r\n".$doublespace,$linebreak); $count = (int)substr($row2['Type'],strpos($row2['Type'],'(')+1,strpos($row2['Type'],')')-strpos($row2['Type'],'(')-1); $setters .= sprintf('%sif(gettype($newvalue) != "string") {%s',$quadspace,$linebreak); $setters .= sprintf('%sthrow new Exception("Value not string - ".$newvalue);%s}%s',$septspace,"\r\n".$quadspace,$linebreak); $setters .= sprintf('%sif(strlen($newvalue) > %s) {%s',$quadspace,$count,$linebreak); $setters .= sprintf('%sthrow new Exception("Value size larger then then - %s - ".$newvalue);%s}%s',$septspace,$count,$linebreak.$quadspace,$linebreak); $setters .= sprintf('%s$this->_%s = $newvalue;%s',$quadspace,$row2['Field'],$linebreak); $setters .= sprintf('%s}%s',$doublespace,$linebreak); $values[] = '?'; $inserttype .= 's'; $type = 'anything'; $htmltype = 'input'; } else // if datetime if(strpos($row2['Type'],'datetime') === 0) { $getters .= sprintf('%sfunction get%s() {%s',$doublespace,$row2['Field'],$linebreak); $getters .= sprintf('%sreturn strtotime($this->_%s);%s}%s',$quadspace,$row2['Field'],"\r\n".$doublespace,$linebreak); $setters .= sprintf('%sif(gettype($newvalue) != "integer") {%s',$quadspace,$linebreak); $setters .= sprintf('%sthrow new Exception("Value not integer - ".$newvalue);%s}%s',$septspace,"\r\n".$quadspace,$linebreak); $setters .= sprintf('%s$this->_%s = date("Y-m-d H:i:s",(int)$newvalue);%s',$quadspace,$row2['Field'],$linebreak); $setters .= sprintf('%s}%s',$doublespace,$linebreak); $values[] = '?'; $inserttype .= 's'; $type = 'integer'; $htmltype = 'input'; } else // both bool and tiny int if(strpos($row2['Type'],'tinyint') === 0) { $getters .= sprintf('%sfunction get%s() {%s',$doublespace,$row2['Field'],$linebreak); $getters .= sprintf('%sreturn (int)$this->_%s;%s}%s',$quadspace,$row2['Field'],"\r\n".$doublespace,$linebreak); $count = (int)substr($row2['Type'],strpos($row2['Type'],'(')+1,strpos($row2['Type'],')')-strpos($row2['Type'],'(')-1); $setters .= sprintf('%sif(gettype($newvalue) != "integer") {%s',$quadspace,$linebreak); $setters .= sprintf('%sthrow new Exception("Value not integer - ".$newvalue);%s}%s',$septspace,"\r\n".$quadspace,$linebreak); $setters .= sprintf('%sif(strlen($newvalue) > %s) {%s',$quadspace,$count,$linebreak); $setters .= sprintf('%sthrow new Exception("Value size larger then then - %s - ".$newvalue);%s}%s',$septspace,$count,$linebreak.$quadspace,$linebreak); $setters .= sprintf('%sif($newvalue == false) {%s',$quadspace,$linebreak); $setters .= sprintf('%s$newvalue = 0;%s',$septspace,$linebreak); $setters .= sprintf('%s}%s',$quadspace,$linebreak); $setters .= sprintf('%selse {%s',$quadspace,$linebreak); $setters .= sprintf('%s$newvalue = 1;%s',$septspace,$linebreak); $setters .= sprintf('%s}%s',$quadspace,$linebreak); $setters .= sprintf('%s$this->_%s = (int)$newvalue;%s',$quadspace,$row2['Field'],$linebreak); $setters .= sprintf('%s}%s',$doublespace,$linebreak); $values[] = '?'; $inserttype .= 'i'; $type = 'integer'; $htmltype = 'input'; } else if(strpos($row2['Type'],'blob') === 0) { // this actually dosnt work because of the way the me $getters .= sprintf('%sfunction get%s() {%s',$doublespace,$row2['Field'],$linebreak); $getters .= sprintf('%sreturn $this->_%s;%s}%s',$quadspace,$row2['Field'],"\r\n".$doublespace,$linebreak); $setters .= sprintf('%s$this->_%s = $newvalue;%s',$quadspace,$row2['Field'],$linebreak); $setters .= sprintf('%s}%s',$doublespace,$linebreak); $values[] = '?'; $inserttype .= 'b'; $type = 'file'; $htmltype = 'file'; } else { // just set it and hope the user knows what they are doing $warnings[] = sprintf('Unknown type "%s" may not save correctly. You can ignore this if you know how to handle the database type yourself. CLASSNAME = %s',$row2['Field'],$row[0]); $setters .= sprintf('%s// !!!WARNING!!! Unknown type "%s" may not save correctly. You can ignore this if you know how to handle the database type yourself.%s',$quadspace,$row2['Field'],$linebreak); $setters .= sprintf('%s$this->_%s = $newvalue;%s',$quadspace,$row2['Field'],$linebreak); $setters .= sprintf('%s}%s',$doublespace,$linebreak); $values[] = '?'; $inserttype .= 's'; $type = 'anything'; } // generate array for form validation $validation = sprintf('public $validator_%s = array("name"=>%s,"type"=>"%s","displayname"=>"","help"=>"","validation"=>array("type"=>"%s","minimum"=>1,"maximum"=>%s,"required"=>%s,"values"=>array(),"selected"=>""),"valid"=>0,"value"=>"","error"=>"","html"=>"");',$row2['Field'],$row2['Field'],$htmltype,$type,$count,$required); $fieldvalidators[] = $validation; $formvalidators[] = sprintf('$validator_%s',$row2['Field']); } else { $getters .= sprintf('%sfunction get%s() {%s',$doublespace,$row2['Field'],$linebreak); $getters .= sprintf('%sreturn $this->_%s;%s}%s',$quadspace,$row2['Field'],"\r\n".$doublespace,$linebreak); $values[] = 'NULL'; $primarykey = $row2['Field']; } } $partialquery = ''; $partialvalues = ''; $partialupdate = ''; $partialselect = ''; foreach ($values as $i) { $partialquery .= $i.','; } foreach ($valuesname as $i) { $partialvalues .= '$this->_'.$i.','; } foreach ($valuesname as $i) { $partialupdate .= '`'.$i.'`=?,'; } foreach ($valuesname as $i) { $partialselect .= '`'.$i.'`,'; } $partialquery = rtrim($partialquery ,','); $partialupdate = rtrim($partialupdate,','); $partialvalues = rtrim($partialvalues,','); $partialselect = rtrim($partialselect,','); //$selectquery = sprintf('func_db_query($db,"SELECT `%s`,%s FROM `%s` WHERE `%s`=? LIMIT 1;", array("i",$id));',$primarykey,$partialselect,$row[0],$primarykey); $selectquery = sprintf('$query = $db->prepare("SELECT `%s`,%s FROM `%s` WHERE `%s`=? LIMIT 1;");',$primarykey,$partialselect,$row[0],$primarykey); $selectquery2 = sprintf('$query->execute(array($id));'); //$insertquery = sprintf('func_db_query($db,"INSERT INTO `%s` VALUES (%s);", array("%s",%s));',$row[0],$partialquery,$inserttype,$partialvalues); $insertquery = sprintf('$query = $db->prepare("INSERT INTO `%s` VALUES (%s);");',$row[0],$partialquery); $insertquery2 = sprintf('$query->execute(array(%s));',$partialvalues); //$updatequery = sprintf('func_db_query($db,"UPDATE `%s` SET %s WHERE `%s`=? LIMIT 1;", array("%si",%s,$this->_%s));',$row[0],$partialupdate,$primarykey,$inserttype,$partialvalues,$primarykey); $updatequery = sprintf('$query = $db->prepare("UPDATE `%s` SET %s WHERE `%s`=? LIMIT 1;");',$row[0],$partialupdate,$primarykey,$inserttype,$partialvalues,$primarykey); $updatequery2 = sprintf('$query->execute(array(%s,$this->_%s));',$partialvalues,$primarykey); //$deletequery = sprintf('func_db_query($db,"DELETE FROM `%s` WHERE `%s`=? LIMIT 1;", array("i",$this->_%s));',$row[0],$primarykey,$primarykey); $deletequery = sprintf('$query = $db->prepare("DELETE FROM `%s` WHERE `%s`=? LIMIT 1;");',$row[0],$primarykey); $deletequery2 = sprintf('$query->execute(array($this->_%s));',$primarykey); // Validators if($generatevalidators){ $fieldvalidation = ''; foreach($fieldvalidators as $i) { $fieldvalidation .= sprintf('%s%s%s',$doublespace,$i,$linebreak); } } $filecontents .= sprintf('%s%s',$variables,$linebreak); $filecontents .= sprintf('%s%s',$fieldvalidation,$linebreak); $filecontents .= sprintf('%s%s',$formvalidator,$linebreak); $filecontents .= sprintf('%s',$getters); $filecontents .= sprintf('%s',$setters); // Save function $filecontents .= sprintf('%s%sfunction save($db) {%s',$linebreak,$doublespace,$linebreak); $filecontents .= sprintf('%sif(is_null($this->_%s)) {%s',$quadspace,$primarykey,$linebreak); $filecontents .= sprintf('%s%s%s',$septspace,$insertquery,$linebreak); $filecontents .= sprintf('%s%s%s',$septspace,$insertquery2,$linebreak); $filecontents .= sprintf('%s$this->_%s = $db->lastInsertId();%s',$septspace,$primarykey,$linebreak); $filecontents .= sprintf('%s}%s',$quadspace,$linebreak); $filecontents .= sprintf('%selse {%s',$quadspace,$linebreak); $filecontents .= sprintf('%s%s%s',$septspace,$updatequery,$linebreak); $filecontents .= sprintf('%s%s%s',$septspace,$updatequery2,$linebreak); $filecontents .= sprintf('%s}%s',$quadspace,$linebreak); $filecontents .= sprintf('%s}%s',$doublespace,$linebreak); // Delete function $filecontents .= sprintf('%s%sfunction delete($db) {%s',$linebreak,$doublespace,$linebreak); $filecontents .= sprintf('%sif(is_null($this->_%s)) {%s',$quadspace,$primarykey,$linebreak); $filecontents .= sprintf('%sreturn;%s',$septspace,$linebreak); $filecontents .= sprintf('%s}%s',$quadspace,$linebreak); $filecontents .= sprintf('%selse {%s',$quadspace,$linebreak); $filecontents .= sprintf('%s%s%s',$septspace,$deletequery,$linebreak); $filecontents .= sprintf('%s%s%s',$septspace,$deletequery2,$linebreak); $filecontents .= sprintf('%s}%s',$quadspace,$linebreak); $filecontents .= sprintf('%s}%s',$doublespace,$linebreak); // Select Function $selectdo = ''; foreach ($valuesname as $i) { $selectdo .= sprintf('%s$this->_%s = $row_data["%s"];%s',$octspace,$i,$i,$linebreak); } $filecontents .= sprintf('%s%sfunction get($db,$id) {%s',$linebreak,$doublespace,$linebreak); $filecontents .= sprintf('%sif(gettype($id) != "integer") {%s',$quadspace,$linebreak); $filecontents .= sprintf('%sthrow new Exception("Value not integer");%s',$septspace,$linebreak); $filecontents .= sprintf('%s}%s',$quadspace,$linebreak); $filecontents .= sprintf('%selse {%s',$quadspace,$linebreak); $filecontents .= sprintf('%s%s%s',$septspace,$selectquery,$linebreak); $filecontents .= sprintf('%s%s%s',$septspace,$selectquery2,$linebreak); $filecontents .= sprintf('%sforeach ($query->fetchAll() as $row_id => $row_data) {%s',$septspace,$linebreak); $filecontents .= sprintf('%s$this->_%s = $row_data["%s"];%s',$octspace,$primarykey,$primarykey,$linebreak); $filecontents .= sprintf('%s',$selectdo); $filecontents .= sprintf('%s}%s',$septspace,$linebreak); $filecontents .= sprintf('%s}%s',$quadspace,$linebreak); $filecontents .= sprintf('%s}%s',$doublespace,$linebreak); $filecontents .= sprintf('}%s',$linebreak); $filecontents .= '?>'; echo '
'.htmlspecialchars($filecontents).'
'; if($savetofile) { $filename = sprintf('%s.class.php',$row[0]); if(!file_exists($filename) || (file_exists($filename) && $overwrite)) { $file = fopen($filename,'w'); fputs($file,$filecontents); fflush($file); fclose($file); } else { $warnings[] = sprintf('Did not create file "%s" already exists',$filename); } } } mysql_close($conn); echo "

Warnings

"; echo '
';
print_r($warnings);
echo '
'; ?>