upon deleting this pops up.
-
Fatal error: Uncaught exception ‘PDOException’ with message ‘SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘*’ at line 1′ in /home/pushcrea/public_html/wp-content/plugins/seamless-slider/classes/PDOQB.php:424 Stack trace: #0 /home/pushcrea/public_html/wp-content/plugins/seamless-slider/classes/PDOQB.php(424): PDOStatement->execute(Array) #1 /home/pushcrea/public_html/wp-content/plugins/seamless-slider/classes/DBUpdater.php(125): SeamlessSlider\PDOQB->fetch() #2 /home/pushcrea/public_html/wp-content/plugins/seamless-slider/uninstall.php(16): SeamlessSlider\DBUpdater->handleDeletion() #3 /home/pushcrea/public_html/wp-admin/includes/plugin.php(966): include(‘/home/pushcrea/…’) #4 /home/pushcrea/public_html/wp-admin/includes/plugin.php(819): uninstall_plugin(‘seamless-slider…’) #5 /home/pushcrea/public_html/wp-admin/plugins.php(357): delete_plugins(Array) #6 {main} thrown in /home/pushcrea/public_html/wp-content/plugins/seamless-slider/classes/PDOQB.php on line 424
<?php namespace SeamlessSlider; class PDOQB { static private $instance = null; private $config = array( 'DB_HOST' => DB_HOST, 'DB_NAME' => DB_NAME, 'DB_USER' => DB_USER, 'DB_PASS' => DB_PASSWORD, 'DB_PORT' => 3306 ); private $conn; private $call; private $query; private $executable; private $conditionalStatements; private $conditionalStates; private $conditionalExecutables; private $conditional; private $conditions; private $state; private $return; private function __construct() { } /** * * Sets start values of all the needed arguments * */ private function getInitialState() { $this->call = -1; $this->query = array(); $this->executable = array(); $this->conditionalStatements = array(); $this->conditionalStates = array(); $this->conditionalExecutables = array(); $this->conditional = false; $this->conditions = array(); $this->state = array(); $this->return = array( 'success' => true ); } /** * * State controllers, used to defined whether requested query should include SQL keywords * like SELECT / WHERE etc * */ private function setState( $type ) { if( $this->conditional ) { $this->conditionalStates[ $this->call ] = isset( $this->conditionalStates[ $this->call ] ) ? $this->conditionalStates[ $this->call ] : array(); $this->conditionalStates[ $this->call ][ $type ] = true; } else { if( !isset($this->state[ $this->call ]) ) { $this->state[ $this->call ] = array(); } $this->state[ $this->call ][ $type ] = true; } } private function checkState( $type ) { return isset( $this->state[ $this->call ] ) && isset( $this->state[ $this->call ][ $type ] ) && $this->state[ $this->call ][ $type ]; } /** * * Conditional handlers, currently only (if/endif) is implemented * */ public function _if( $condition ) { $this->conditional = true; $this->conditions[ $this->call ] = $condition; return $this; } public function _endif() { $this->conditional = false; if ( $this->conditions[ $this->call ] ) { $this->query[ $this->call ] .= $this->conditionalStatements[ $this->call ]; if( isset( $this->conditionalStates[ $this->call ] ) && !empty( $this->conditionalStates[ $this->call ] ) ) { foreach( $this->conditionalStates[ $this->call ] as $key => $type ) { $this->setState( $key ); } } if( isset( $this->conditionalExecutables[ $this->call ] ) && !empty( $this->conditionalExecutables[ $this->call ] ) ) { $this->executable = array_merge( $this->executable,$this->conditionalExecutables[ $this->call ] ); } } $this->conditionalStatements[ $this->call ] = ''; $this->conditionalStates[ $this->call ] = array(); $this->conditionalExecutables[ $this->call ] = array(); return $this; } /** * * Used to start building any query. Needed for implementing sub-query support * */ public static function start() { if( !self::$instance ) self::$instance = new static(); if( !self::$instance->conn ) { self::$instance->getConnection(); self::$instance->getInitialState(); } self::$instance->call++; self::$instance->query[ self::$instance->call ] = ''; self::$instance->conditionalStatements[ self::$instance->call ] = ''; return self::$instance; } /** * * Query constructors * */ public function select ( $n ) { if( $this->checkState( 'select' ) ) { $this->addToQuery( ', ' . $n ); } else { $this->addToQuery( 'SELECT ' . $n ); } $this->setState('select'); return $this; } public function delete () { $this->addToQuery( 'DELETE' ); return $this; } public function update ( $n ) { $this->addToQuery( 'UPDATE ' . $n ); return $this; } public function insertInto ( $n ) { $this->addToQuery( 'INSERT INTO ' . $n ); $this->setState('insert'); return $this; } public function from ( $n ) { $this->addToQuery( ' FROM ' . $n ); return $this; } public function where( $n ) { if( !empty($n) ) { $r = $this->valueParser( $n ); if( $this->checkState( 'where' ) ) { $this->addToQuery( ' AND ' . implode( ' AND ',$r ) ); } else { $this->addToQuery( ' WHERE ' . implode( ' AND ',$r ) ); } $this->setState('where'); } return $this; } public function notNull( $n ) { if( $this->checkState( 'where' ) ) { $this->addToQuery( ' AND ' . $n . ' IS NOT NULL' ); } else { $this->addToQuery( ' WHERE ' . $n . ' IS NOT NULL' ); } $this->setState('where'); return $this; } public function values ( $n ) { if( !empty( $n ) ) { $c = $v = array(); foreach( $n as $c_n => $r_v ) { $c[] = $c_n; $v[] = ':' . $c_n; $this->executable[':' . $c_n] = trim( $r_v ); } $this->addToQuery( ' ( ' . implode( ' , ',$c ) . ' ) VALUES ( ' . implode( ' , ',$v ) . ' )' ); } return $this; } public function set( $n ) { if( !empty($n) ) { $r = $this->valueParser( $n ); $this->addToQuery( ' SET ' . implode( ' , ',$r ) ); } return $this; } public function join( $table ) { return $this->joinMaker( 'JOIN',$table ); } public function rightJoin( $table ) { return $this->joinMaker( 'RIGHT JOIN',$table ); } public function leftJoin( $table ) { return $this->joinMaker( 'LEFT JOIN',$table ); } public function innerJoin( $table ) { return $this->joinMaker( 'INNER JOIN',$table ); } public function raw( $n ) { $this->addToQuery( $n ); $this->setState('raw'); return $this; } public function on( $n ) { if( !empty($n) ) { $r = $this->valueParser( $n,true ); $this->addToQuery( ' ON ' . implode( ' AND ',$r ) ); } return $this; } public function groupBy( $n ) { $v = is_array($n) ? implode( ' AND ',$n ) : $n; $this->addToQuery( ' GROUP BY ' . $v ); return $this; } public function orderBy( $n , $type = 'ASC' ) { $v = is_array($n) ? implode( ' , ',$n ) : $n; $this->addToQuery( ' ORDER BY ' . $v . ' ' . $type); return $this; } public function limit( $p,$pp ) { $offset = ($p - 1) * $pp; $this->addToQuery( ' LIMIT ' . $offset . ',' . $pp ); return $this; } public function _as ( $n ) { $this->addToQuery( ' AS ' . $n ); return $this; } /** * * Helper functions * */ private function addToQuery( $statement ) { if( $this->conditional ) { $this->conditionalStatements[ $this->call ] .= $statement; } else { $this->query[ $this->call ] .= $statement; } } private function addToExecutable( $c_n,$r_v ) { if( $this->conditional ) { $this->conditionalExecutables[ $this->call ] = isset( $this->conditionalExecutables[ $this->call ] ) ? $this->conditionalExecutables[ $this->call ] : array(); $this->conditionalExecutables[ $this->call ][':'.$c_n] = trim( $r_v ); } else { $this->executable[':'.$c_n] = trim( $r_v ); } } private function joinMaker( $type,$table ) { $this->addToQuery( ' ' . $type . ' ' . $table ); return $this; } private function valueParser( $n,$t = false ) { $r = array(); foreach( $n as $c_n => $r_v ) { if( is_array($r_v) ) { $r[] = $c_n .' IN ( \'' . implode( '\' , \'',$r_v ) . '\' )'; } else { if( $t ) { $r[] = $c_n . ' = ' . trim( $r_v ); } else { $fixed_c_n = str_replace('.','',$c_n); $r[] = $c_n . ' = :' . $fixed_c_n; $this->addToExecutable( $fixed_c_n,$r_v ); } } } return $r; } /** * * Execution functions * */ public function get() { $r = $this->call > 0 ? '( ' . trim( $this->query[ $this->call ] ) . ' )' : trim( $this->query[ $this->call ] ); $this->query[ $this->call ] = ''; $this->call--; return $r; } public function fetch() { $this->return['query'] = $this->query[ $this->call ]; $this->return['executable'] = $this->executable; try { $r = $this->conn->prepare( $this->query[ $this->call ] ); $r->execute( $this->executable ); if( isset( $this->state[ $this->call ][ 'select' ] ) ) { $this->return['data'] = $r->fetchAll(); } if( isset( $this->state[ $this->call ][ 'insert' ] ) ) { $this->return['data'] = $this->conn->lastInsertId(); } $this->call--; } catch( PDOException $e ) { $this->return['success'] = false; $this->return['reason'] = $e->getMessage(); } $this->conn = null; return $this; } /** * * For connection purposes * */ public function getConnection() { if (!$this->conn) $this->PdoConnection(); return $this->conn; } private function PdoConnection() { try { $this->conn = new \PDO('mysql:host=' . $this->config['DB_HOST'] . ';port=' . $this->config['DB_PORT'] . ';dbname=' . $this->config['DB_NAME'], $this->config['DB_USER'], $this->config['DB_PASS'], array( \PDO::ATTR_PERSISTENT => false)); } catch (\PDOException $exc) { echo $exc->getMessage(); die(); } $this->conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $this->conn->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true); $this->conn->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); set_time_limit(500000); $this->conn->exec('SET CHARACTER SET ' . DB_CHARSET); } public function getData() { $data = $this->return['data']; $this->getInitialState(); return $data; } public function getReturn() { $data = $this->return; $this->getInitialState(); return $data; } public function error() { return !$this->return['success']; } public function emptyData() { return empty( $this->return['data'] ); } }
- The topic ‘upon deleting this pops up.’ is closed to new replies.