Saving and getting module data

Defining Schema

When installing a module Microweber checks the config.php file for the $config['tables'] array. Each key represents a table name and its value is an array of column definitions. The ID column is automatically created and all columns are nullable by default.

Example userfiles/modules/paintings/config.php

$config = array();
$config['name'] = "My Paintings";
$config['author'] = "Pablo Picasso";
$config['ui'] = true; 
$config['ui_admin'] = true; 
$config['position'] = "98";
$config['version'] = "0.01";
$config['tables'] = array(
        'paintings' => array(
            'id' => 'integer',
            'name' => 'string',
            'price' => 'float',
            'description' => 'text',
            'created_by' => 'integer',
            'created_at' => 'dateTime',
        )
);

Custom Tables

For more options of the data storage you can read here.

Read more about making custom tables here.

Getting and saving data

You can use the db_get, db_save and db_delete functions to work with data from your those tables.

// Getting
$data = db_get("table=paintings")

// Saving
$save = array(
    'name' => 'Mona Lisa',
    'description' => 'Paiting by Leonardo da Vinci'
);
$id = db_save('paintings', $save);

// Deleting
db_delete('paintings', $id);

Create

The db_save function accepts table name as first argument and row data as a second argument. In order to create rows in a table simply don't specify an ID.

Example

$data = array(
    'name' => 'Three Musicians',
    'price' => 2700,
    'description' => 'My greatest work'
);
db_save('paintings', $data);

Read

Call the db_get function and set the table key in the argument array to retrieve rows from a given database table.

Example

$rows = db_get(array('table' => 'paintings'));

Set the single key to true in the argument array for the function to return a single row. Any non-reserved key name is treated as a WHERE condition for given column name. Reference the db_get function docs for more details.

Example

$row = db_get(array(
    'table' => 'paintings',
    'name' => 'Three Musicians',
    'single' => true
    ));

Alternatively the above query can be written like that db_get('table=paintings&name=Three Musicians&single=true')

Update

If the db_save function receives an array containing an id key it performs an update operation on the corresponding row.

Example

// Gets single row with id = 3
$row = db_get(array(
    'table' => 'paintings',
    'id' => 3,
    'single' => true
    ));
$row['title'] = 'My Awesome Painting';
echo 'Updating row with ID ', $row['id'];
db_save('paintings', $row);

Delete

The db_delete function returns true after successfully deleting row with a specified ID.

Example

db_delete('paintings', $id = 3);

Advanced Queries

Reference the db_get and db_save documentation pages for a list of all available parameters.

The documentation is under development. Help us by editing this page.