ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
extension.cache.mysql.php
Go to the documentation of this file.
1<?php
4// available at http://getid3.sourceforge.net //
5// or http://www.getid3.org //
7// //
8// extension.cache.mysql.php - part of getID3() //
9// Please see readme.txt for more information //
10// ///
12// //
13// This extension written by Allan Hansen <ahØartemis*dk> //
14// ///
16
17
73{
74
75 // private vars
78
79
80 // public: constructor - see top of this file for cache type and cache_options
81 function getID3_cached_mysql($host, $database, $username, $password) {
82
83 // Check for mysql support
84 if (!function_exists('mysql_pconnect')) {
85 die('PHP not compiled with mysql support.');
86 }
87
88 // Connect to database
89 $this->connection = mysql_pconnect($host, $username, $password);
90 if (!$this->connection) {
91 die('mysql_pconnect() failed - check permissions and spelling.');
92 }
93
94 // Select database
95 if (!mysql_select_db($database, $this->connection)) {
96 die('Cannot use database '.$database);
97 }
98
99 // Create cache table if not exists
100 $this->create_table();
101
102 // Check version number and clear cache if changed
103 $this->cursor = mysql_query("SELECT `value` FROM `getid3_cache` WHERE (`filename` = '".GETID3_VERSION."') AND (`filesize` = '-1') AND (`filetime` = '-1') AND (`analyzetime` = '-1')", $this->connection);
104 list($version) = @mysql_fetch_array($this->cursor);
105 if ($version != GETID3_VERSION) {
106 $this->clear_cache();
107 }
108
109 parent::getID3();
110 }
111
112
113
114 // public: clear cache
115 function clear_cache() {
116
117 $this->cursor = mysql_query("DELETE FROM `getid3_cache`", $this->connection);
118 $this->cursor = mysql_query("INSERT INTO `getid3_cache` VALUES ('".GETID3_VERSION."', -1, -1, -1, '".GETID3_VERSION."')", $this->connection);
119 }
120
121
122
123 // public: analyze file
124 function analyze($filename) {
125
126 if (file_exists($filename)) {
127
128 // Short-hands
129 $filetime = filemtime($filename);
130 $filesize = filesize($filename);
131 $filenam2 = mysql_escape_string($filename);
132
133 // Loopup file
134 $this->cursor = mysql_query("SELECT `value` FROM `getid3_cache` WHERE (`filename`='".$filenam2."') AND (`filesize`='".$filesize."') AND (`filetime`='".$filetime."')", $this->connection);
135 list($result) = @mysql_fetch_array($this->cursor);
136
137 // Hit
138 if ($result) {
139 return unserialize($result);
140 }
141 }
142
143 // Miss
144 $result = parent::analyze($filename);
145
146 // Save result
147 if (file_exists($filename)) {
148 $res2 = mysql_escape_string(serialize($result));
149 $this->cursor = mysql_query("INSERT INTO `getid3_cache` (`filename`, `filesize`, `filetime`, `analyzetime`, `value`) VALUES ('".$filenam2."', '".$filesize."', '".$filetime."', '".time()."', '".$res2."')", $this->connection);
150 }
151 return $result;
152 }
153
154
155
156 // private: (re)create sql table
157 function create_table($drop = false) {
158
159 $this->cursor = mysql_query("CREATE TABLE IF NOT EXISTS `getid3_cache` (
160 `filename` VARCHAR(255) NOT NULL DEFAULT '',
161 `filesize` INT(11) NOT NULL DEFAULT '0',
162 `filetime` INT(11) NOT NULL DEFAULT '0',
163 `analyzetime` INT(11) NOT NULL DEFAULT '0',
164 `value` TEXT NOT NULL,
165 PRIMARY KEY (`filename`,`filesize`,`filetime`)) TYPE=MyISAM", $this->connection);
166 echo mysql_error($this->connection);
167 }
168}
169
170
171?>
$result
getID3() by James Heinrich info@getid3.org //
getID3_cached_mysql($host, $database, $username, $password)
$filename
Definition: getid3.php:46
const GETID3_VERSION
getID3() by James Heinrich info@getid3.org //
Definition: getid3.php:13