$mConnectionResource
$mConnectionResource : resource
Resource created by the database connection
An implementation of the abstraction of the MySQL database engine
__construct(string $dbHost, string $dbUser, mixed $dbPass, string $dbName)
Class constructor.
Setup parameters through AiCommon and access the database through that class' instance of this class
| string | $dbHost | The database host name |
| string | $dbUser | The database username |
| mixed | $dbPass | The database password |
| string | $dbName | The name of the database |
query(string $query, string $file, int $line) : resource
Perform a query of the database.
This does not assume that strings have been escaped, so be sure to escape them.
Use the PHP macros FILE and LINE for the 2nd and 3rd parameters.
| string | $query | The query to perform |
| string | $file | The file making the query |
| int | $line | The line number in the querying file |
escapeString(string $string) : string
Escape a string in a manner that the chosen DBMS can handle
For consistency with SQL standards, we won't use mConnectionResource->real_escape_string() even though it works for mysqli insertions
| string | $string | The string to escape |
blockInjection(string $string) : string
Returns any part of a query before a semi-colon
If there is an attempt of an injection attack, or if your string input legitimately has semicolons, this is likely to cause truncated input.
If your input may contain semicolons, be sure that you trust the source before allowing it to perfom a query.
| string | $string | The string to de-inject |
fetchArray(resource $result) : array
Fetch a row form the database and return it as an indexed array and an associative array with field names as indexes
For consistency, returned keys are cast to lower case
| resource | $result | The conenction resource returned by a query |
fetchFieldObject(resource $result, int $columnOffset) : object
Gets an object of the field at the given offset for other methods to use
| resource | $result | The conenction resource returned by a query |
| int | $columnOffset | The offset of the requested column (0 is the first column) |
fieldName(resource $result, int $columnOffset) : string
Get the name of a field at the given offset
For consistency, returned values are cast to lower case
| resource | $result | The conenction resource returned by a query |
| int | $columnOffset | The offset of the requested column (0 is the first column) |
fieldType(resource $result, int $columnOffset) : int
The type of field at the given offset
Numeric constants can be found here: http://php.net/manual/en/mysqli.constants.php
| resource | $result | The conenction resource returned by a query |
| int | $columnOffset | The offset of the requested column (0 is the first column) |
simpleFieldType(resource $result, int $columnOffset) : string
A uniform type of field at the given offset.
Returns a string that represents a simplified field type for consistency across DBMS'
We don't check every field type. This has been written for the field types that APP(ideas) uses commonly. It will probably need modification to suit the needs of others.
This globs a lot of different types together. You may need to make them more fine-grained. We've also not tested that each of the supplied types return as expected. Especially the mysqli types often times return unexpected results, so be sure to test for your specific use before relying on this.
For MySQL, if you choose to use an enum type for boolean, you could conceivably write a test case specific to your implementation for this to return "bool" but you would need to grab the enumerated values from the field and test them for known values to keep from confusing them from non-boolean ENUMs
| resource | $result | The conenction resource returned by a query |
| int | $columnOffset | The offset of the requested column (0 is the first column) |
fixBoolean(string $booleanValue) : bool
Convert a database-formatted boolean value into something consistent with PHP.
For MySQL, this assumes that the boolean field is an int that will contain either 1 or 0. You may want to use an ENUM type instead, in which case, the pgsql code can be used here
| string | $booleanValue | A boolean value retrieved from a database query |
insertBlank(string $tableName, string $fieldName, mixed $requiredFields) : int
Inserts a blank record into the requested table and returns the value of the surrogate key of the new record.
This allows us to use a "modify" method for saving new data rather than separate "add" and "modify"
If one of your "requiredFields" is a string, you must enclose it in apostrophes on input
| string | $tableName | The name of the table into which we are inserting |
| string | $fieldName | The name of the field into which we are inserting |
| mixed | $requiredFields | An array of other fields and values that must not be null on a new record insert |
beginTransaction(string $file, int $line) : void
Begins a database transaction if supported by the DBMS.
Not supported in MySQL by default. YOu can alter this if you use InnoDB tables.
| string | $file | The file making the query. Leave empty to report the DB connector file name. |
| int | $line | The line number in the querying file. Leave empty to report the DB connector line number. |
endTransaction(string $file, int $line) : void
Ends (commits) a database transaction if supported by the DBMS.
Not supported in MySQL by default. YOu can alter this if you use InnoDB tables.
| string | $file | The file making the query. Leave empty to report the DB connector file name. |
| int | $line | The line number in the querying file. Leave empty to report the DB connector line number. |
getCurrentTimestamp(string $format) : string
Retrieves a value that can be inserted into the database as a date or timestamp indicating the current date and/or time
| string | $format | The format of the string to return. One of 'database' 'epoch' or a PHP date() format. The default is 'database' |