I'm trying to conform to the Zend Coding Standard as well.
EDIT 2:
<?php
/**
* Input : Query request
* Output : A row or a list of rows
* Notes :
*
* Provides escaping and binding via PDO library
* Consolidates PDO to use a single calling mechanism
* Consolidates all queries to an associative array
* Mysqli available for those who wish to implement
*/
class Database extends OneDatabase
{
private $dbResource;
public function __construct()
{
$this->dbResource = oneDatabase::_get();
}
public function getResource()
{
return $this->dbResource;
}
protected $_sqlArray = array(
"signin_pass" => "SELECT pass FROM cr WHERE email=?",
"signin_validate" => "SELECT email,pass FROM cr WHERE email=? AND pass=?",
"signin_flname" => "SELECT flname FROM cr WHERE email=?",
"signup_check" => "SELECT * FROM cr WHERE email=?",
"signup_insert" => "INSERT INTO cr VALUES (?,?,?)",
"signup_site1" => "INSERT INTO bo VALUES ('Facebook','http://www.facebook.com','',?)",
"signup_site2" => "INSERT INTO bo VALUES ('Twitter','http://www.twitter.com','',?)",
"bookmark_delete" => "DELETE FROM bo WHERE name=? AND email=? LIMIT 1",
"bookmark_insert" => "INSERT INTO bo VALUES (?, ?,'', ?)",
"bookmark_model" => "SELECT * FROM bo WHERE email=? ORDER BY name ASC",
"tweet_insert" => "INSERT INTO tw VALUES (?,?,?,?)",
"tweet_model" => "SELECT * FROM tw ORDER BY time DESC LIMIT 7",
"create_bookmark" => "CREATE TABLE bookmark(name VARCHAR(64), url VARCHAR(256), tag VARCHAR(256), id INT)",
"create_credentials" => "CREATE TABLE credentials(id INT NOT NULL AUTO_INCREMENT, flname VARCHAR(60), email VARCHAR(32), pass VARCHAR(40), PRIMARY KEY(id))",
"create_tweet" => "CREATE TABLE tweet(id INT NOT NULL AUTO_INCREMENT, flname VARCHAR(60), email VARCHAR(32), pass VARCHAR(40), PRIMARY KEY(id))"
);
public function _pdoQuery($fetchType, $queryType, $parameterArray)
{
$query=$this->_sqlArray[$queryType];
eval("\$query = \"$query\";");
if($parameterArray==0)
{
$results = oneDatabase::$_database->query($query);
return $results;
}
oneDatabase::$_database->quote($query);
$pdoStatement = oneDatabase::$_database->prepare($query);
$pdoStatement->execute($parameterArray);
if($fetchType=='none')
{
$results=NULL;
}
else if($fetchType=='single')
{
$results = $pdoStatement->fetch(PDO::FETCH_ASSOC);
}
else if($fetchType=='multiple')
{
$results = $pdoStatement->fetchAll();
}
return $results;
}
protected function _mysqliQuery($aquery)
{
return oneDatabase::$_database->query($query);
}
}