Skip to content

Commit

Permalink
Can write raw data to DataBases
Browse files Browse the repository at this point in the history
  • Loading branch information
jarofgreen committed Apr 14, 2011
1 parent 1e07fd7 commit 008be93
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 0 deletions.
1 change: 1 addition & 0 deletions sampleConfig.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@
<WriteHourOfDayData GraphFile="HourOfDay.png" CSVFile="HourOfDay.csv"/>
<WriteDayOfWeekData GraphFile="DayOfWeek.png" CSVFile="DayOfWeek.csv"/>
<WriteICalData File="Data.ical" />
<WriteDB DSN="mysql:host=localhost;dbname=CreepyCoder" UserName="cc" Password="cc" TableName="data" TimeFieldName="data" />
</config>
9 changes: 9 additions & 0 deletions src/CreepyCoder.php
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,12 @@
}
}

$configList = $xmlDoc->getElementsByTagName('WriteDB');
$configListLength = $configList->length;
if ($configListLength > 0) {
require dirname(__FILE__).DIRECTORY_SEPARATOR.'WriteDB.php';
for($pos=0; $pos<$configListLength; $pos++) {
$dataManager->writeData(new WriteDB($configList->item($pos)));
}
}

56 changes: 56 additions & 0 deletions src/WriteDB.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php
/**
* Copyright (C) 2011 James (james at jarofgreen dot co dot uk)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
**/


class WriteDB extends BaseWriteClass {


protected $dsn;
protected $userName = "cc";
protected $password = "cc";
protected $tableName = "data";
protected $timeFieldName = "data";


public function __construct($configData = array()) {
if (get_class($configData) == 'DOMElement') {
$this->dsn = $configData->getAttribute('DSN');
// TODO: Only
if ($configData->hasAttribute('UserName')) $this->userName = $configData->getAttribute('UserName');
if ($configData->hasAttribute('Password')) $this->password = $configData->getAttribute('Password');
if ($configData->hasAttribute('TableName')) $this->tableName = $configData->getAttribute('TableName');
if ($configData->hasAttribute('TimeFieldName')) $this->timeFieldName = $configData->getAttribute('TimeFieldName');
}
parent::__construct($configData);
}

public function write() {

$pdo = new PDO($this->dsn, $this->userName, $this->password);

$stat = $pdo->prepare("INSERT INTO ".$this->tableName." SET ".$this->timeFieldName."=:d");

foreach($this->dataManager->getData() as $item) {
$stat->bindValue('d', $item->getDateTimeAs('Y-m-d H:i:s'), PDO::PARAM_STR);
$stat->execute();
}

}

}

0 comments on commit 008be93

Please sign in to comment.