uw Sat Mar 3 03:46:19 2001 EDT
Modified files:
/php4/pear/Cache/Container phplib.php
Log:
bugfix: idExists(), inline Doc changes: class doc
Index: php4/pear/Cache/Container/phplib.php
diff -u php4/pear/Cache/Container/phplib.php:1.4
php4/pear/Cache/Container/phplib.php:1.5
--- php4/pear/Cache/Container/phplib.php:1.4 Fri Mar 2 06:16:38 2001
+++ php4/pear/Cache/Container/phplib.php Sat Mar 3 03:46:19 2001
@@ -16,29 +16,42 @@
// | Sebastian Bergmann <[EMAIL PROTECTED]> |
// +----------------------------------------------------------------------+
//
-// $Id: phplib.php,v 1.4 2001/03/02 14:16:38 uw Exp $
+// $Id: phplib.php,v 1.5 2001/03/03 11:46:19 uw Exp $
-require_once 'Cache/Container.php';
+require_once '/Cache/Container.php';
-/*
-CREATE TABLE cache (
- id CHAR(32) NOT NULL DEFAULT '',
- content MEDIUMTEXT NOT NULL DEFAULT '',
- expires INT(9) NOT NULL DEFAULT 0,
-
- changed TIMESTAMP(14),
-
- INDEX (expires),
- PRIMARY KEY (id)
-)
-*/
-
/**
* Stores cache data into a database table.
+*
+* WARNING: Other systems might or might not support certain datatypes of
+* the tables shown. As far as I know there's no large binary
+* type in SQL-92 or SQL-99. Postgres seems to lack any
+* BLOB or TEXT type, for MS-SQL you could use IMAGE, don't know
+* about other databases. Please add sugestions for other databases to
+* the inline docs.
+*
+* The field 'changed' has no meaning for the Cache itself. It's just there
+* because it's a good idea to have an automatically updated timestamp
+* field for debugging in all of your tables.
+*
+* For _MySQL_ you need this DB table:
+*
+* CREATE TABLE cache (
+* id CHAR(32) NOT NULL DEFAULT '',
+* content BLOB NOT NULL DEFAULT '',
+* expires INT(9) NOT NULL DEFAULT 0,
+*
+* changed TIMSTAMP(14) NOT NULL,
+*
+* INDEX (expires),
+* PRIMARY KEY (id)
+* )
+*
*
* @author Ulf Wendel <[EMAIL PROTECTED]>, Sebastian Bergmann
<[EMAIL PROTECTED]>
-* @version $Id: phplib.php,v 1.4 2001/03/02 14:16:38 uw Exp $
+* @version $Id: phplib.php,v 1.5 2001/03/03 11:46:19 uw Exp $
* @package Cache
+* @see save()
*/
class Cache_Container_phplib extends Cache_Container {
@@ -115,10 +128,13 @@
return new CacheError("No database class specified.", __FILE__, __LINE__);
// include the required files
+ if ($this->db_file)
+ include_once($this->db_path . $this->db_file);
+
if ($this->local_file)
include_once($this->local_path . $this->local_file);
-
- // create a db object
+
+ // create a db object
$this->db = new $this->db_class;
} // end constructor
@@ -164,12 +180,12 @@
function delete($id) {
$this->flushPreload($id);
-
- $query = sprintf("DELETE FROM %s WHERE id = '%s'",
+ $this->db->query(
+ sprintf("DELETE FROM %s WHERE id = '%s'",
$this->cache_table,
$id
- );
- $this->db->query($query);
+ )
+ );
return (boolean)$this->db->affected_rows();
} // end func delete
@@ -178,9 +194,7 @@
function flush() {
$this->flushPreload();
-
- $query = sprintf("DELETE FROM %s", $this->cache_table);
- $this->db->query($query);
+ $this->db->query(sprintf("DELETE FROM %s", $this->cache_table));
return $this->db->affected_rows();
} // end func flush
@@ -188,11 +202,14 @@
function idExists($id) {
- $query = sprintf("SELECT id FROM %s WHERE ID = '%s'",
+ $this->db->query(
+ sprintf("SELECT id FROM %s WHERE ID = '%s'",
$this->cache_table,
$id
- );
-
+ )
+ );
+
+ return $this->db->nf();
} // end func isExists
@@ -200,11 +217,12 @@
$this->flushPreload();
- $query = sprintf("DELETE FORM %s WHERE expires <= %d AND expires > 0",
+ $this->db->query(
+ sprintf("DELETE FORM %s WHERE expires <= %d AND expires > 0",
$this->cache_table,
time()
- );
- $this->db->query($query);
+ )
+ );
} // end func garbageCollection
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]