Database access
To get a raw PDO connection and use default PHP functions
$dbh = ipDb()->getConnection(); |
or use several handy functions to make your queries shorter and easier
Select multiple records
Use selectAll to fetch data without writing an SQL Query
//select all records from ip_tableName table. Prefix will be added automatically $results = ipDb()->selectAll( 'tableName' , '*' ); //select all records with condition $results = ipDb()->selectAll( 'tableName' , '*' , array ( 'age' => 25)); //ordering and limiting the records $results = ipDb()->selectAll( 'tableName' , '*' , array ( 'age' => 25), ' ORDER BY age LIMIT 5' ); |
Use fetchAll function if you want to have full controll over SQL query
$table = ipTable( 'example' ); $sql = "SELECT `firstName` FROM $table WHERE `lastName` = :lastName" ; $condition = array ( 'lastName' => 'Smith' ); $results = ipDb()->fetchAll( $sql , $condition ); |
Get a single row from a result set
By table name
$results = ipDb()->selectRow( 'tableName' ); $results = ipDb()->selectRow( 'tableName' , '*' , array ( 'id' => 25)); |
Using custom SQL query
$table = ipTable( 'example' ); $sql = "SELECT `firstName`, `lastName` FROM $table WHERE id = :id" ; $results = ipDb()->fetchRow( $sql , array ( 'id' => 25)); |
Get a single value from a result set
By table name
$results = ipDb()->selectValue( 'table' , 'firstName' , array ( 'id' => 25)); |
Using custom SQL query
$table = ipTable( 'example' ); $sql = "SELECT `firstName` FROM $table WHERE `id` = :id" ; $params = array ( 'id' => 25); $results = ipDb()->fetchValue( $sql , $params ); |
Select a column
By table name
ipDb()->selectColumn( 'example' , 'firstName' , array ( 'age' => 25)); |
Using custom SQL query
$table = ipTable( 'example' ); $sql = "SELECT `firstName` FROM $table WHERE `age` = :age" ; $params = array ( 'age' => 25); $results = ipDb()->fetchValue( $sql , $params ); |
By default fetchColumn fetches the first column of a result set. Specify a column name as second argument, if needed.
Insert a new record
/** Insert `John Smith` into example table */ $personId = ipDb()->insert( 'example' , array ( 'firstName' => 'John' , 'lastName' => 'Smith' )); |
Delete records
ipDb()-> delete ( 'example' , array ( 'age' => 25)); |
Update table
Increase the sallary for all Johns in table 'ip_example'
ipDb()->update( 'example' , array ( 'salary' => 40000), array ( 'FirstName' => 'John' ) ); |
Execute SQL query
/** Create example table */ $table = ipTable( 'example' ); $sql = " CREATE TABLE IF NOT EXISTS $table ( `PersonId` int(11) NOT NULL AUTO_INCREMENT, `FirstName` varchar(255), `LastName` varchar(255), PRIMARY KEY (`PersonId`) ) "; ipDb()->execute( $sql ); |
Handle database query errors
try { ipDb()->execute( $sql ); } catch (\Ip\DbException $e ){ ipLog()->log( 'yourPluginGroup/yourPluginName' , 'Error while executing my database query: ' . $e ); } |