Constants

COLUMN_INDEX_PREFIX

COLUMN_INDEX_PREFIX

Prefix for index names which are autmaticly createt from fuman

SEARCH_INDEX_BLOCK_SIZE

SEARCH_INDEX_BLOCK_SIZE

How many records will be processed per loop.

WARN_MAX_RESULTS

WARN_MAX_RESULTS

If a query result has a row-count greater than this number, a error log will be written.

Properties

$traceSql

$traceSql : boolean

Trace sql statements

Type

boolean

$_nameStartQuote

$_nameStartQuote : string

Type

string

$_nameEndQuote

$_nameEndQuote : string

Type

string

$_convertStringEncoding

$_convertStringEncoding : boolean

Type

boolean

$_dbConfig

$_dbConfig : null|\stdClass

Configuration object of Fuman_Db_Abstract from Fuman_Config

Type

null|\stdClass

$_queryCounter

$_queryCounter : integer

Type

integer

$_redundantQueries

$_redundantQueries : 

Type

Methods

getQueryCounter()

getQueryCounter() : integer

Gets query counter

Returns

integer

incrementQueryCounter()

incrementQueryCounter() 

Increments query counter

__construct()

__construct(\stdClass  $dbConfig) 

Constructor

Parameters

\stdClass $dbConfig

Throws

\Exception

getName()

getName() : string

Get name

Returns

string

getConfig()

getConfig() : \stdClass

Gets db config

Returns

\stdClass

getConnectionString()

getConnectionString() : string

Returns an Connection string built by the appropriate Driver

Returns

string

getCharset()

getCharset() : null|string

Returns charset for connection

Returns

null|string

isUtf8Charset()

isUtf8Charset() : boolean

Is the database charset UTF-8

Returns

boolean

equals()

equals(\Fuman_Db_Abstract  $db) : boolean

Compares database object

Parameters

\Fuman_Db_Abstract $db

Returns

boolean

sqlJoin()

sqlJoin() : \Fuman_Db_SqlJoin

Gets a new Fuman_Db_SqlJoin instance

Returns

\Fuman_Db_SqlJoin

prepareTableName()

prepareTableName(string  $name) : string

Prepares Name of Table

Parameters

string $name

Returns

string

prepareColumnName()

prepareColumnName(string  $name, string|null  $tableName = null) : string

Prepares name of column

Parameters

string $name
string|null $tableName

Returns

string

prepareColumnNames()

prepareColumnNames(array  $names, string|null  $tableName = null) : array

Prepares a list of column names

Parameters

array $names
string|null $tableName

Returns

array

parseExpression()

parseExpression(string  $expression) : string

Parses expression (replaces [ ] with the appropriate quotes)

Parameters

string $expression

Returns

string

getTableNames()

getTableNames() : \array[string]

Gets table names

Returns

\array[string]

getColumns()

getColumns(string  $tableName) : array

Gets columns names and type

Parameters

string $tableName

Returns

array —

with key as columnName and value as type,length

getColumnNames()

getColumnNames(string  $tableName) : \array[string]

Gets column names for table

Parameters

string $tableName

Returns

\array[string]

decodeValue()

decodeValue(string  $value, \Fuman_Db_DataType  $dataType) : string

Decodes a database value

Parameters

string $value
\Fuman_Db_DataType $dataType

Returns

string

encodeValue()

encodeValue(string  $value, \Fuman_Db_DataType  $dataType, boolean  $quoteValue = true) : string

Encodes a database value

Parameters

string $value
\Fuman_Db_DataType $dataType
boolean $quoteValue

Returns

string

encodePhpValue()

encodePhpValue(string  $value, integer  $phpType, boolean  $quoteValue = true) : string

Encodes PHP value (e.g. converts time to sql datetime)

Parameters

string $value
integer $phpType
boolean $quoteValue

Returns

string

encodeParameters()

encodeParameters(\Fuman_Db_Parameters  $parameters) : array

Encodes a database value

Parameters

\Fuman_Db_Parameters $parameters

Returns

array

getDbType()

getDbType(\Fuman_Db_DataType  $type) : string

Converts a dataType to the db data-type

Parameters

\Fuman_Db_DataType $type

Returns

string

getCreateIndexExpression()

getCreateIndexExpression(string  $tableName, string  $columnName) : string

Creates an index Expression

Parameters

string $tableName
string $columnName

Returns

string

addColumnIndex()

addColumnIndex(  $tableName,   $columnName) 

Parameters

$tableName
$columnName

createTable()

createTable(\Fuman_Table  $table) : boolean

Creates an table with given blueprint of Fuman_Table {@link Fuman_Table}

Parameters

\Fuman_Table $table

Returns

boolean

deleteTable()

deleteTable(\Fuman_Table  $table) : boolean

Deletes an table of {@link Fuman_Table}

Parameters

\Fuman_Table $table

Returns

boolean

getRecordsBySql()

getRecordsBySql(string  $sql, array  $values = array(), string  $recordClass = 'Fuman_Db_Record') : array|array<mixed,\Fuman_Db_Record>

Gets records by sql statement

Parameters

string $sql
array $values
string $recordClass

Returns

array|array<mixed,\Fuman_Db_Record>

saveRecord()

saveRecord(\Fuman_Db_Record  $record) : boolean

Inserts or Updates an Record. Behaviour depends on Fuman_Db_Record::saved

Parameters

\Fuman_Db_Record $record

Returns

boolean

handleLastInsertId()

handleLastInsertId(\Fuman_Table  $table) : string

handles `get last insert id`, not all drivers support this

Parameters

\Fuman_Table $table

Returns

string

deleteRecord()

deleteRecord(\Fuman_Db_Record  $record, \Fuman_Db_Where|null  $where = null) : boolean

Deletes an record

Parameters

\Fuman_Db_Record $record
\Fuman_Db_Where|null $where

Returns

boolean

deleteRecords()

deleteRecords(\Fuman_Table  $table, \Fuman_Db_Where  $where) : integer

Returns the count of the affected rows

Parameters

\Fuman_Table $table
\Fuman_Db_Where $where

Returns

integer

getColumnSQL()

getColumnSQL(\Fuman_Table  $table, \Fuman_Db_Parameters  $parameters, \Fuman_Db_Query_ColumnList  $columnList = null, null|string  $tableName = null, boolean  $ignoreSQLColumns = false) : string

Creates column sql

Parameters

\Fuman_Table $table
\Fuman_Db_Parameters $parameters
\Fuman_Db_Query_ColumnList $columnList
null|string $tableName
boolean $ignoreSQLColumns

Returns

string

sqlContainsAlias()

sqlContainsAlias(string  $sql) : boolean

Checks if sql contains [ AS ]

Parameters

string $sql

Returns

boolean

getRecordSet()

getRecordSet(\Fuman_Table  $table, \Fuman_Db_RecordSetMeta  $meta, string|null  $recordClass = null) : \Fuman_Db_RecordSet

Get records from table base on meta

Parameters

\Fuman_Table $table
\Fuman_Db_RecordSetMeta $meta
string|null $recordClass

Returns

\Fuman_Db_RecordSet

getSelectSql()

getSelectSql(string  $sql, \Fuman_Table  $table, \Fuman_Db_RecordSetMeta  $meta, \Fuman_Db_Parameters  $parameters) : string

Gets the sql query

Parameters

string $sql
\Fuman_Table $table
\Fuman_Db_RecordSetMeta $meta
\Fuman_Db_Parameters $parameters

Returns

string

getRecordsSetBySelectSql()

getRecordsSetBySelectSql(string  $sql, \Fuman_Table  $table, \Fuman_Db_RecordSetMeta|null  $meta = null, \Fuman_Db_Parameters|null  $parameters = null, string|null  $recordClass = null) : \Fuman_Db_RecordSet

Gets records set using an sql statement (WHERE and ORDER BY will be added automatically)

Parameters

string $sql
\Fuman_Table $table
\Fuman_Db_RecordSetMeta|null $meta
\Fuman_Db_Parameters|null $parameters
string|null $recordClass

Returns

\Fuman_Db_RecordSet

getRecordSetBySql()

getRecordSetBySql(string  $sql, \Fuman_Table  $table, \Fuman_Db_RecordSetMeta|null  $meta = null, \Fuman_Db_Parameters|null  $parameters = null, string|null  $recordClass = null) : \Fuman_Db_RecordSet

Gets records set using an sql statement

Parameters

string $sql
\Fuman_Table $table
\Fuman_Db_RecordSetMeta|null $meta
\Fuman_Db_Parameters|null $parameters
string|null $recordClass

Returns

\Fuman_Db_RecordSet

countRecords()

countRecords(\Fuman_Table  $table, \Fuman_Db_RecordSetMeta  $meta) : integer

Counts records

Parameters

\Fuman_Table $table
\Fuman_Db_RecordSetMeta $meta

Returns

integer

getRecordIndexOf()

getRecordIndexOf(\Fuman_Table  $table, \Fuman_Db_Record  $record, \Fuman_Db_RecordSetMeta  $meta) : integer

Gets index/position of record in record set

Parameters

\Fuman_Table $table
\Fuman_Db_Record $record
\Fuman_Db_RecordSetMeta $meta

Returns

integer

getOne()

getOne(string  $sql, object|null  $input_parameters = null) : null

Gets one record

Parameters

string $sql
object|null $input_parameters

Returns

null

execute()

execute(string  $sql, array|null  $input_parameters = null) : boolean

Executes an sql statement

Parameters

string $sql
array|null $input_parameters

Returns

boolean

reorderSequence()

reorderSequence(string  $seqNoColumnName, \Fuman_Table  $table, \Fuman_Db_Where|null  $constraint = null) : void

Reorders/clean up sequence column in table

Parameters

string $seqNoColumnName
\Fuman_Table $table
\Fuman_Db_Where|null $constraint

manageSearchIndexManyToManyTriggers()

manageSearchIndexManyToManyTriggers(array  $manyToManyInputTypes) : void

Add/remove triggers on many to many table

Parameters

array $manyToManyInputTypes

synchronizeSearchIndex()

synchronizeSearchIndex(\Fuman_Table  $table, \stdClass  $state) : boolean

Synchronize/update search index

Parameters

\Fuman_Table $table
\stdClass $state

Returns

boolean

getFullTextRankingQuery()

getFullTextRankingQuery(string  $columnName, array  $parsed, \Fuman_Db_Parameters  $parameters) : string

Gets the fulltext search query

Parameters

string $columnName
array $parsed
\Fuman_Db_Parameters $parameters

Returns

string

logErrorQuery()

logErrorQuery(\PDOStatement  $stmt, array  $values = array(), string  $msg = 'QUERY FAILED') : void

Logs query as error

Parameters

\PDOStatement $stmt
array $values
string $msg

_joinQueryForDump()

_joinQueryForDump(\PDOStatement  $statement, array  $values, string  $mode = '') : string

Joins query and values to be dumped

Parameters

\PDOStatement $statement
array $values
string $mode

Returns

string

logQuery()

logQuery(string  $sql, \Fuman_Db_Parameters|array|null  $parameters = null, \Fuman_Table|null  $table = null) : void

Fills the placeholders and writes sql to Fuman_Util_Logger::debug

Parameters

string $sql
\Fuman_Db_Parameters|array|null $parameters

@ishacky

\Fuman_Table|null $table

query()

query(string  $statement) : \PDOStatement

Overwritten to log all queries.

Parameters

string $statement

Returns

\PDOStatement

exec()

exec(string  $statement) : integer

Overwritten to log all queries.

Parameters

string $statement

Returns

integer

prepare()

prepare(string  $statement, array  $driver_options = array()) : \PDOStatement

Overwritten to log all queries.

Parameters

string $statement
array $driver_options

Returns

\PDOStatement

_getConnectionOptions()

_getConnectionOptions() : array

Returns an Array with additional PDO Driver Options.

For no options, return an empty array

Returns

array

_translateWebCharset()

_translateWebCharset(string  $charset) : string

This function will translate the charset from web.charset or db.charset to the appropriate database charset

Parameters

string $charset

Returns

string

_addLimit()

_addLimit(string  $sql, \Fuman_Table  $table, \Fuman_Db_RecordSetMeta  $meta) : string

Adds limit statement to query

Parameters

string $sql
\Fuman_Table $table
\Fuman_Db_RecordSetMeta $meta

Returns

string

_checkReadOnly()

_checkReadOnly(string  $command, \Fuman_Table  $table) : boolean

Checks if read only flag on table

Adds error message if read only Returns true if table is read only

Parameters

string $command
\Fuman_Table $table

Returns

boolean

_insertRecord()

_insertRecord(\Fuman_Db_Record  $record) : boolean

Inserts a record

Parameters

\Fuman_Db_Record $record

Returns

boolean

_executeInsertRecord()

_executeInsertRecord(string  $sql, array|\Fuman_Db_Parameters  $parameters, \Fuman_Db_Record  $record) : boolean

Called by _insertRecord (MS SQL must extend query to get lastInsertId

Parameters

string $sql
array|\Fuman_Db_Parameters $parameters

@ishacky

\Fuman_Db_Record $record

Returns

boolean

_updateRecord()

_updateRecord(\Fuman_Db_Record  $record) : boolean

Updates a record

Parameters

\Fuman_Db_Record $record

Throws

\Exception

Returns

boolean

_getSearchIndexStat()

_getSearchIndexStat(\Fuman_Table  $table, \Fuman_Table|null  $dataTable = null, integer|null  $minValue = null, integer|null  $maxValue = null) : \stdClass|null

Statistic helper for search index

Object: stat_min (min id) stat_max (max id) stat_count stat_sum (sum(id)) stat_sumpow (sum(pow(id,2)))

Parameters

\Fuman_Table $table
\Fuman_Table|null $dataTable
integer|null $minValue
integer|null $maxValue

Returns

\stdClass|null

_getFullTextRankingLikeQuery()

_getFullTextRankingLikeQuery(string  $columnName, array  $parsed, \Fuman_Db_Parameters  $parameters) : string

Gets the fulltext search query only based on LIKE

Parameters

string $columnName
array $parsed
\Fuman_Db_Parameters $parameters

Returns

string

_getFullTextRankingLikeQueryPart()

_getFullTextRankingLikeQueryPart(string  $columnName, string  $value, \Fuman_Db_Parameters  $parameters) : string

Gets the fulltext search query LIKE part

Parameters

string $columnName
string $value
\Fuman_Db_Parameters $parameters

Returns

string

_checkForMaxResultWarning()

_checkForMaxResultWarning(\PDOStatement  $statement, array  $values, string  $functionName) : void

Checks if the given statement has more than self::WARN_MAX_RESULTS rows. If true, an error message will be written.

Parameters

\PDOStatement $statement
array $values
string $functionName