PostgreSQLConnector
class PostgreSQLConnector extends DBConnector (View source)
PostgreSQL connector class using the PostgreSQL specific api
The connector doesn't know anything about schema selection, so code related to masking multiple databases as schemas should be handled in the database controller and schema manager.
Properties
| protected | resource | $dbConn | Connection to the PG Database database  | 
                |
| protected | string | $databaseName | Name of the currently selected database  | 
                |
| protected | resource | $lastQuery | Reference to the last query result (for pg_affected_rows)  | 
                |
| protected | array | $lastParameters | Last parameters used to connect  | 
                |
| protected | $lastRows | 
Methods
Error handler for database errors.
Determine if this SQL statement is a destructive operation (write or ddl)
Determine if this SQL statement is a DDL operation
Determine if this SQL statement is a write operation (alters content but not structure)
Determine if a query is of the given type
Extracts only the parameter values for error reporting
Link this connector to the database given the specified parameters Will throw an exception rather than return a success state.
Given a value escape this for use in a query for the current database connector. Note that this does not quote the value.
Given a value escape and quote this appropriately for the current database connector.
Escapes an identifier (table / database name). Typically the value is simply double quoted. Don't pass in already escaped identifiers in, as this will double escape the value!
Executes the following query with the specified error level.
Execute the given SQL parameterised query with the specified arguments
Determines if we are connected to a server AND have a valid database selected.
Escape a parameter to be used in the connection string
Determines if the SQL fragment either breaks into or out of a string literal by counting single quotes
Iteratively replaces all question marks with numerical placeholders E.g. "Title = ? AND Name = ?" becomes "Title = $1 AND Name = $2"
Details
        
                    protected        
    databaseError(string $msg, int $errorLevel = E_USER_ERROR, string $sql = null, array $parameters = array())
        
    
    Error handler for database errors.
All database errors will call this function to report the error. It isn't a static function; it will be called on the object itself and as such can be overridden in a subclass. Subclasses should run all errors through this function.
        
                            bool
    isQueryMutable(string $sql)
        
    
    Determine if this SQL statement is a destructive operation (write or ddl)
        
                            bool
    isQueryDDL(string $sql)
        
    
    Determine if this SQL statement is a DDL operation
        
                            bool
    isQueryWrite(string $sql)
        
    
    Determine if this SQL statement is a write operation (alters content but not structure)
        
                    protected        
    isQueryType(string $sql, string|array $type)
        
    
    Determine if a query is of the given type
        
                    protected        array
    parameterValues(array $parameters)
        
    
    Extracts only the parameter values for error reporting
        
                            
    connect(array $parameters, bool $selectDB = false)
        
    
    Link this connector to the database given the specified parameters Will throw an exception rather than return a success state.
The connector should not select the database once connected until explicitly called by selectDatabase()
        
                            string
    getVersion()
        
    
    Query for the version of the currently connected database
        
                            string
    escapeString(string $value)
        
    
    Given a value escape this for use in a query for the current database connector. Note that this does not quote the value.
        
                            string
    quoteString(string $value)
        
    
    Given a value escape and quote this appropriately for the current database connector.
        
                            
    escapeIdentifier(string $value, string $separator = '.')
        
    
    Escapes an identifier (table / database name). Typically the value is simply double quoted. Don't pass in already escaped identifiers in, as this will double escape the value!
        
                            
    query(string $sql, int $errorLevel = E_USER_ERROR)
        
    
    Executes the following query with the specified error level.
Implementations of this function should respect previewWrite and benchmarkQuery
        
                            SS_Query
    preparedQuery(string $sql, array $parameters, int $errorLevel = E_USER_ERROR)
        
    
    Execute the given SQL parameterised query with the specified arguments
        
                            bool
    selectDatabase(string $name)
        
    
    Select a database by name
        
                            string
    getSelectedDatabase()
        
    
    Retrieves the name of the currently selected database
        
                            
    unloadDatabase()
        
    
    De-selects the currently selected database
        
                            string
    getLastError()
        
    
    Retrieves the last error generated from the database connection
        
                            int
    getGeneratedID(string $table)
        
    
    Determines the last ID generated from the specified table.
Note that some connectors may not be able to return $table specific responses, and this parameter may be ignored.
        
                            int
    affectedRows()
        
    
    Determines the number of affected rows from the last SQL query
        
                            bool
    isActive()
        
    
    Determines if we are connected to a server AND have a valid database selected.
        
                    protected        string
    escapeParameter(array $parameters, string $key, string $name, mixed $default = null)
        
    
    Escape a parameter to be used in the connection string
        
                            bool
    checkStringTogglesLiteral(string $input)
        
    
    Determines if the SQL fragment either breaks into or out of a string literal by counting single quotes
Handles double-quote escaped quotes as well as slash escaped quotes
        
                            string
    replacePlaceholders(string $sql)
        
    
    Iteratively replaces all question marks with numerical placeholders E.g. "Title = ? AND Name = ?" becomes "Title = $1 AND Name = $2"