<?php
require_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();
?>
<?php
class 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);
}
}
}
?>