|
3 months ago | |
---|---|---|
gitlabci | 3 months ago | |
.drone.yml | 3 months ago | |
.gitignore | 2 years ago | |
.gitlab-ci.yml | 1 year ago | |
LICENSE | 2 years ago | |
Makefile | 2 years ago | |
README.md | 2 years ago | |
bug.m | 2 years ago | |
gitlabci.m | 1 year ago | |
mariadb.c | 2 years ago | |
mariadb.m | 2 years ago |
Pull Mirror: https://gitlab.com/markuman/mex-mariadb
Push Mirror: https://github.com/markuman/mex-mariadb
test compiling
run tests against
$ make
mkoctfile --mex -L/usr/lib -lmysqlclient -lpthread -lz -lm -ldl -lssl -lcrypto -I/usr/include/mysql mariadb.c
you can take a look at gitlabci.m
file too. the classdef file mariadb.m
and the mex file mariadb_.mex
are both used for testing.
octave:1> sql = mariadb('hostname', '127.0.0.1', 'password', 'password');
octave:2> sql.query('create database octave')
ans = [](0x0)
to change a database, you can recreate your class
or change the property sql.database = 'octave'
.
octave:3> sql = mariadb('hostname', '127.0.0.1', 'password', 'password', 'database', 'octave');
octave:4> sql.query('create table a (idx int)');
octave:5> sql.query('insert into a (idx) values (1),(2),(3),(4)');
octave:6> sql.query('select * from a')
ans =
{
[1,1] = idx
[2,1] = 1
[3,1] = 2
[4,1] = 3
[5,1] = 4
}
you can change the output format to matrix
octave:7> sql.output = 'mat'
sql =
<object mariadb>
octave:8> sql.query('select * from a')
ans =
NaN
1
2
3
4
octave:9>
the return structure is always a cell.
octave:1> a = mariadb_('127.0.0.1', 3306, 'root', 'password', 'testdb', 'select * from a')
a =
{
[1,1] = idx
[2,1] = 1
[3,1] = 2
[4,1] = 8
[5,1] = 1
[6,1] = 2
[7,1] = 8
[1,2] = b
[2,2] = NULL
[3,2] = NULL
[4,2] = NULL
[5,2] = 1
[6,2] = 2
[7,2] = 3
}
select * from a;
idx |b |
----|--|
1 | |
2 | |
8 | |
1 |1 |
2 |2 |
8 |3 |
hostname
localhost
port
3306
username
root
password
password
database
command
is_octave
output
mat
and cell
query(command)
to_mat()