pdo = $pdo; $this->tablePrefix = $tablePrefix; } public function init() { // create database tables } public function get( $id ) { $sql = "SELECT id, name, port, user, security FROM `{$this->tablePrefix}smtp_servers` WHERE id = :id"; $sth = $this->pdo->prepare( $sql ); $sth->execute( [ ':id' => $id ] ); return $sth->fetch( PDO::FETCH_ASSOC ); } public function list_for_user( $userId ) { $sql = "SELECT id, name FROM `{$this->tablePrefix}smtp_servers` WHERE pas_user_id = :userId"; $sth = $this->pdo->prepare( $sql ); $sth->execute( [ ':userId' => $userId ] ); return $sth->fetchAll( PDO::FETCH_ASSOC ); } public function create( $data ) { $set = []; $mapping = []; foreach ( [ 'name', 'port', 'user', 'security' ] as $field ){ if ( isset( $data[ $field ] ) ){ $set[] = "{$field} = :{$field}"; $mapping[ ":{$field}" ] = $data[ $field ]; } } $set = implode( ', ', $set ); $sql = "INSERT INTO `{$this->tablePrefix}smtp_servers` SET {$set}"; $sth = $this->pdo->prepare( $sql ); $sth->execute( $mapping ); return $sth->rowCount() > 0; } public function update( $id, $data ) { $set = []; $mapping = [ ':id' => $id ]; foreach ( [ 'name', 'port', 'user', 'security' ] as $field ){ if ( isset( $data[ $field ] ) ){ $set[] = "{$field} = :{$field}"; $mapping[ ":{$field}" ] = $data[ $field ]; } } $set = implode( ', ', $set ); $sql = "UPDATE `{$this->tablePrefix}smtp_servers` SET $set WHERE id = :id"; $sth = $this->pdo->prepare( $sql ); $sth->execute( $mapping ); return $sth->rowCount() > 0; } public function delete( $id ) { $sql = "DELETE FROM `{$this->tablePrefix}smtp_servers WHERE id = :id"; $sth = $this->pdo->prepare( $sql ); $sth->execute( [ ':id' => $id ] ); return $sth->rowCount() > 0; } } // end of file pas_smtp_servers.class.php