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 '
';
?>