diff options
Diffstat (limited to 'library/spam/b8/storage/storage_frndc.php')
-rw-r--r-- | library/spam/b8/storage/storage_frndc.php | 86 |
1 files changed, 30 insertions, 56 deletions
diff --git a/library/spam/b8/storage/storage_frndc.php b/library/spam/b8/storage/storage_frndc.php index cbc6fe81a..62909d471 100644 --- a/library/spam/b8/storage/storage_frndc.php +++ b/library/spam/b8/storage/storage_frndc.php @@ -147,58 +147,8 @@ class b8_storage_frndc extends b8_storage_base public function connect() { - return TRUE; - - # Are we already connected? - if($this->connected === TRUE) - return TRUE; - - # Are we using an existing passed resource? - if($this->config['connection'] === FALSE) { - # ... yes we are, but the connection is not a resource, so return an error - $this->connected = FALSE; - return self::DATABASE_CONNECTION_BAD_RESOURCE; - } - - elseif($this->config['connection'] === NULL) { - - # ... no we aren't so we have to connect. - - if($this->_connection = mysql_connect($this->config['host'], $this->config['user'], $this->config['pass'])) { - if(mysql_select_db($this->config['database'], $this->_connection) === FALSE) { - $this->connected = FALSE; - return self::DATABASE_SELECT_ERROR . ": " . mysql_error(); - } - } - else { - $this->connected = FALSE; - return self::DATABASE_CONNECTION_ERROR; - } - - } - - else { - # ... yes we are - $this->_connection = $this->config['connection']; - } - - # Just in case ... - if($this->_connection === NULL) { - $this->connected = FALSE; - return self::DATABASE_CONNECTION_FAIL; - } - - # Check to see if the wordlist table exists - if(mysql_query('DESCRIBE ' . $this->config['table_name'], $this->_connection) === FALSE) { - $this->connected = FALSE; - return self::DATABASE_TABLE_ACCESS_FAIL . ": " . mysql_error(); - } - - # Everything is okay and connected $this->connected = TRUE; - - # Let's see if this is a b8 database and the version is okay - return $this->check_database(); + return TRUE; } @@ -224,20 +174,44 @@ class b8_storage_frndc extends b8_storage_base array_push($where, $token); } - $where = 'token IN ("' . implode('", "', $where) . '")'; + $where = 'term IN ("' . implode('", "', $where) . '")'; } else { $token = dbesc($token); - $where = 'token = "' . $token . '"'; + $where = 'term = "' . $token . '"'; } # ... and fetch the data $result = q(' - SELECT token, count - FROM ' . $this->config['table_name'] . ' - WHERE ' . $where . ' AND uid = ' . $uid ); + SELECT * FROM spam WHERE ' . $where . ' AND uid = ' . $uid ); + + + $returned_tokens = array(); + if(count($result)) { + foreach($result as $rr) + $returned_tokens[] = $rr['term']; + } + $to_create = array(); + + if(count($tokens) > 0) { + foreach($tokens as $token) + if(! in_array($token,$returned_tokens)) + $to_create[] = str_tolower($token); + } + if(count($to_create)) { + $sql = ''; + foreach($to_create as $term) { + if(strlen($sql)) + $sql .= ','; + $sql .= sprintf("(term,datetime,uid) values('%s','%s',%d)", + dbesc(str_tolower($term)) + dbesc(datetime_convert()), + intval($uid) + ); + q("insert into spam " . $sql); + } return $result; |