PHP 相当于JavaBean的代码

来源:互联网 发布:java软件工程师薪水 编辑:程序博客网 时间:2024/04/29 10:47
<?phprequire_once("Collection1.class.php");require_once("Dog.class.php");require_once("User.class.php");function isEveryoneAwake(){if(time()< strtotime("today 8:30am") || time() > strtotime("today 10:30pm")){return false;}else{return true;}}try{$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');//$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);$user = new User($pdo);print "Running ....<br/>";$user->setFirstName("Steven");$user->setLastName("Nowicki");print "First Name is ".$user->getFirstName()."<br/>";print "Last Name is ". $user->getLastName() ."<br/>";print "saving .....<br/>";$user->save();print "ID in database is ".$user->getID()."<br/>";$objStatement = $pdo->prepare("select * from samsung");$result = $objStatement->execute();$i = 0;//var_dump($result);while($arrow = $objStatement->fetch(PDO::FETCH_ASSOC)){print "Row $i<br/> \n";foreach($arrow as $key=>$value){print "-Column $key, value $value <br/>\n";};$i++;}print "connect successful";}catch(PDOException $e){echo $e->getMessage();}$pdo = null;print "successfully disconnected\n";$objDog = new Dog("Fido");$objDog->onspeak('isEveryoneAwake');$objDog->bark();$coll = new Collection1();$coll->addItem("samsung","key1");$coll->addItem("sssssss", "key2");echo $coll->getItem("key1");echo $coll->__toString();?>



<?phpclass User{private $ID;private $objPDO;private $strTableName;private $blForDeletion;private $FirstName;private $LastName;private $UserName;private $Password;public function __construct(PDO $objPDO, $id = NULL){$this->strTableName = "user";$this->arRelationMap = array("id" => "ID","first_name" => "FirstName","last_name" => "LastName","username" => "UserName","md5_pwd" => "Password");$this->objPDO = $objPDO;if(isset($id)){$this->ID = $id;$strQuery = "SELECT ";foreach($this->arRelationMap as $key => $value){$strQuery .= $key. ",";}$strQuery = substr($strQuery, 0, strlen($strQuery) - 1);$strQuery .= " FROM". $this->strTableName. " WHERE id = :eid";$objStatement = $this->objPDO->prepare($strQuery);$objStatement->bindParam(":eid", $this->ID, PDO::PARAM_INT);$objStatement->execute();$arRow = $objStatement->fetch(PDO::FETCH_ASSOC);foreach($arRow as $key=>$value){$strMember = $this->arRelationMap[$key];if(property_exits($this, $strMember)){if(is_numeric($value)){eval('$this->$strMember = $value;');}else{eval("$this->$strMember = '$value';");}}}}}public function save(){if(isset($this->ID)){$strQuery = "UPDATE $this->strTableName SET ";foreach($this->arRelationMap as $key=>$value){eval("$actualValue = $this->".$value.";");if(isset($actualValue)){$strQuery .= "$key = :$value,"; }}$strQuery = substr($strQuery, 0, strlen($strQuery) - 1);$strQuery .= " WHERE id = :eid";unset($objStatement);$objStatement = $this->objPDO->prepare($strQuery);$objStatement->bindValue(":eid", $this->ID, PDO::PARAM_INT);foreach($this->arRelationMap as $key=>$value){eval("$actualValue = $this->".$value.";");if(isset($actualValue) || $actualValue == NULL){if(is_int($actualValue)){$objStatement->bindValue(":".$value, $actualValue, PDO::PARAM_INT);}else{$objStatement->bindValue(":".$value, $actualValue, PDO::PARAM_STR);}}}$objStatement->execute();}else{$strValueList = "";$strQuery = "INSERT INTO $this->strTableName (";foreach($this->arRelationMap as $key => $value){ eval('$actualValue = $this->'.$value.';');  if($actualValue){$strQuery .= $key.",";$strValueList .= ":$value,"; }}$strQuery = substr($strQuery, 0, strlen($strQuery) - 1);$strValueList = substr($strValueList, 0, strlen($strValueList) - 1);$strQuery .= ") VALUES (".$strValueList.")";unset($objStatement);$objStatement = $this->objPDO->prepare($strQuery);foreach($this->arRelationMap as $key => $value){eval('$actualValue = $this->'.$value.';');if(isset($actualValue)){if(is_int($actualValue) || $actualValue == NULL){$objStatement->bindValue(":$value", $actualValue, PDO::PARAM_INT);}else{$objStatement->bindValue(":$value", $actualValue, PDO::PARAM_STR);}}}$objStatement->execute();$this->ID = $this->objPDO->lastInsertId();}}public function MarkForDeletion(){$this->blForDeletion = true;}public function __destruct(){if(isset($this->ID)){if($this->blForDeletion == true){$strQuery = "DELETE FROM $this->strTableName WHERE ID = :eid";$objStatement = $this->objPDO->prepare($strQuery);$objStatement->bindValue(":eid", $this->ID, PDO::PARAM_INT);$objStatement->execute();}}}public function __call($strFunction, $arguments){$strMethodType = substr($strFunction, 0, 3);$strMethodMember = substr($strFunction, 3);switch($strMethodType){case "set": return ($this->SetAccessor($strMethodMember, $arguments[0])); break;case "get": return ($this->GetAccessor($strMethodMember));}return (false);}private function SetAccessor($strMember, $strNewValue){if(property_exists($this, $strMember)){if(is_numeric($strNewValue) || $strNewValue == NULL){eval('$this->'.$strMember. '= ' .$strNewValue.';');}else{//var_dump($strMember);//echo '<br/>$this->'.$strMember. '= "' .$strNewValue.'";<br/>';eval('$this->'.$strMember. '= "' .$strNewValue.'";');}}else{return (false);}}private function GetAccessor($strMember){if(property_exists($this, $strMember)){//echo'$strValue $this->'.$strMember.';'."<br/>";eval('$strValue = $this->'.$strMember.';');return ($strValue);}else{return (false);}}}?>


0 0
原创粉丝点击