Current File : //opt/RZphp74/includes/test/XML_Query2XML/tests/XML_Query2XML/AllDBLayers/PDO_db_init.php |
<?php
/**This is included from unit tests to initialize a DB connection.
*
* LICENSE:
* This source file is subject to version 2.1 of the LGPL
* that is bundled with this package in the file LICENSE.
*
* COPYRIGHT:
* Empowered Media
* http://www.empoweredmedia.com
* 481 Eighth Avenue Suite 1530
* New York, NY 10001
*
* @copyright Empowered Media 2006
* @license http://www.gnu.org/copyleft/lesser.html LGPL Version 2.1
* @author Lukas Feiler <lukas.feiler@lukasfeiler.com>
* @package XML_Query2XML
* @version $Id: PDO_db_init.php 302587 2010-08-20 23:53:59Z clockwerx $
*/
class MyPDOStatement extends PDOStatement
{
protected function __construct()
{
//parent::__construct();
}
/**Does what PDO::ATTR_FETCH_TABLE_NAMES was supposed to do.
*/
public function fetch()
{
if ($record = parent::fetch()) {
foreach ($record as $key => $value) {
$newKey = $key;
if (strpos($newKey, '.') !== false) {
$newKey = substr($newKey, strpos($newKey, '.') + 1);
}
$newRecord[$newKey] = $value;
}
} else {
return $record;
}
return $newRecord;
}
/**Does what PDO::ATTR_FETCH_TABLE_NAMES was supposed to do.
*/
public function fetchAll()
{
$records = parent::fetchAll();
if (is_array($records)) {
$newRecords = array();
for ($i = 0; $i < count($records); $i++) {
foreach ($records[$i] as $key => $value) {
$newKey = $key;
if (strpos($newKey, '.') !== false) {
$newKey = substr($newKey, strpos($newKey, '.') + 1);
}
$newRecords[$i][$newKey] = $value;
}
}
return $newRecords;
} else {
return $records;
}
}
}
require_once dirname(dirname(__FILE__)) . '/settings.php';
list($protocol, $address) = explode('://', DSN);
if (strpos($address, '@') === false) {
if ($protocol == 'sqlite') {
$protocol .= '2';
}
if (strpos($address, '/C:\\') === 0) {
$address = ltrim($address, '/');
}
$db = new PDO($protocol . ':' . $address);
$db->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('MyPDOStatement', array()));
} else {
list($credentials, $address) = explode('@', $address);
if (strpos($credentials, ':') === false) {
$username = $credentials;
$password = '';
} else {
list($username, $password) = explode(':', $credentials);
}
list($host,$database) = explode('/', $address);
$db = new PDO($protocol . ':host=' . $host . ';dbname=' . $database, $username, $password);
}
?>