diff --git a/class.databaserecord.php b/class.databaserecord.php index 4ef493a..373b8b7 100644 --- a/class.databaserecord.php +++ b/class.databaserecord.php @@ -368,6 +368,12 @@ abstract class CPHPDatabaseRecordClass extends CPHPBaseClass } else { + /* Temporary implementation to make old style queries play nice with PDO code. */ + if(strpos($this->verify_query, ":Id") !== false) + { + $this->verify_query = str_replace(":Id", "%d", $this->verify_query); + } + $query = sprintf($this->verify_query, $this->sId); if($result = mysql_query_cached($query)) { @@ -427,7 +433,21 @@ abstract class CPHPDatabaseRecordClass extends CPHPBaseClass $sFinalValue = ($bool) ? "1" : "0"; break; case "timestamp": - $sFinalValue = (isset($this->$variable_name_safe)) ? mysql_from_unix($this->$variable_name_safe) : mysql_from_unix(unix_from_local($this->$variable_name_unsafe)); + if(is_numeric($this->$variable_name_unsafe)) + { + $sFinalValue = mysql_from_unix($this->$variable_name_unsafe); + } + else + { + if(isset($this->$variable_name_safe)) + { + $sFinalValue = mysql_from_unix($this->$variable_name_safe); + } + else + { + $sFinalValue = mysql_from_unix(unix_from_local($this->$variable_name_unsafe)); + } + } break; case "string": $sFinalValue = (isset($this->$variable_name_unsafe)) ? mysql_real_escape_string($this->$variable_name_unsafe) : mysql_real_escape_string($this->$variable_name_safe); diff --git a/config.mysql.sample.php b/config.mysql.sample.php deleted file mode 100644 index c6bd3f0..0000000 --- a/config.mysql.sample.php +++ /dev/null @@ -1,17 +0,0 @@ - "ClassA", - 'classb' => "ClassB" -); - -$cphp_locale_name = "english"; -$cphp_locale_path = "locales"; -$cphp_locale_ext = "lng"; - -$cphp_usersettings[CPHP_SETTING_TIMEZONE] = "Europe/Amsterdam"; - -/* These are the memcache settings. You will need to have memcache set - * up on your server to use these. Compression requires zlib. */ -$cphp_memcache_enabled = true; // Whether to user memcache. -$cphp_memcache_server = "localhost"; // The hostname of the memcached -$cphp_memcache_port = 11211; // The port number of memcached -$cphp_memcache_compressed = true; // Whether to compress memcache objects - -$cphp_mysql_enabled = true; - -require("config.mysql.php"); - -$cphp_components = array( - "router", - "errorhandler", - "formbuilder" -); diff --git a/include.memcache.php b/include.memcache.php index a2302ca..c4731de 100644 --- a/include.memcache.php +++ b/include.memcache.php @@ -90,6 +90,8 @@ function mc_delete($key) function mysql_query_cached($query, $expiry = 60, $key = "") { + global $database; + if($key == "") { $key = md5($query) . md5($query . "x"); @@ -103,30 +105,62 @@ function mysql_query_cached($query, $expiry = 60, $key = "") } else { - if($res = mysql_query($query)) + if(empty($cphp_config->database->pdo)) { - $found = false; - - while($row = mysql_fetch_assoc($res)) - { - $return_object->data[] = $row; - $found = true; - } - - if($found === true) + if($res = mysql_query($query)) { - $return_object->source = "database"; - mc_set($key, $return_object->data, $expiry); - return $return_object; + $found = false; + + while($row = mysql_fetch_assoc($res)) + { + $return_object->data[] = $row; + $found = true; + } + + if($found === true) + { + $return_object->source = "database"; + mc_set($key, $return_object->data, $expiry); + return $return_object; + } + else + { + return false; + } } else { - return false; + return null; } } else { - return null; + /* Transparently use PDO to run the query. */ + if($res = $database->Query($query)) + { + if($data = $statement->fetchAll(PDO::FETCH_ASSOC)) + { + if(count($data) > 0) + { + mc_set($key, $result, $expiry); + + $return_object->source = "database"; + $return_object->data = $result; + } + else + { + return false; + } + } + else + { + return null; + } + } + else + { + return null; + } } } }