From 1d7b929871264c91e4c9846fee761e2f172929b1 Mon Sep 17 00:00:00 2001 From: Shish Date: Fri, 31 Dec 2010 19:29:15 +0000 Subject: [PATCH] convert parts of core/database to pdo --- core/database.class.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/core/database.class.php b/core/database.class.php index 3e7bcaf3..dc77f687 100644 --- a/core/database.class.php +++ b/core/database.class.php @@ -1,8 +1,5 @@ Execute("SET NAMES utf8;"); + $db->query("SET NAMES utf8;"); } public function scoreql_to_sql($data) { @@ -255,7 +252,7 @@ class APCCache implements CacheEngine { */ class Database { /** - * The ADODB database connection object, for anyone who wants direct access + * The PDO database connection object, for anyone who wants direct access */ var $db; @@ -276,17 +273,22 @@ class Database { public function Database() { global $database_dsn, $cache_dsn; - if(substr($database_dsn, 0, 5) == "mysql") { + # FIXME: translate database URI into something PDO compatible + #$db_proto = $database_dsn; + #$db_host = $database_dsn; + #$db_name = $database_dsn; + + if($db_proto == "mysql") { $this->engine = new MySQL(); } - else if(substr($database_dsn, 0, 5) == "pgsql") { + else if($db_proto == "pgsql") { $this->engine = new PostgreSQL(); } - else if(substr($database_dsn, 0, 6) == "sqlite") { + else if($db_proto == "sqlite") { $this->engine = new SQLite(); } - $this->db = @NewADOConnection($database_dsn); + $this->db = new PDO("$db_proto:host=$db_host;dbname=$db_name", $db_user, $db_pass); if(isset($cache_dsn) && !empty($cache_dsn)) { $matches = array(); @@ -303,7 +305,6 @@ class Database { } if($this->db) { - $this->db->SetFetchMode(ADODB_FETCH_ASSOC); $this->engine->init($this->db); } else { @@ -323,10 +324,10 @@ class Database { } /** - * Execute an SQL query and return an ADODB resultset + * Execute an SQL query and return an PDO resultset */ public function execute($query, $args=array()) { - $result = $this->db->Execute($query, $args); + $result = $this->db->query($query, $args); if($result === False) { print "SQL Error: " . $this->db->ErrorMsg(); print "
Query: $query";