MySQL Client
Using this package you can execute SQL requests on a MySQL server directly from your mbed. It uses the Networking stack.
Packages¶
Precompiled version:
Library¶
Architecture¶
This MySQL client implements a limited subset of the MySQL internal client/server protocol (including authentication), for server versions 4.1 and newer.
Includes¶
#include "MySQLClient.h"
Reference¶
Import program
Public Member Functions |
|
| MySQLClient () | |
|
Instantiates the MySQL client.
|
|
| MySQLResult | open ( Host &host, const string &user, const string &password, const string &db, void(*pMethod)( MySQLResult )) |
|
Opens a connection to a server.
|
|
| template<class T > | |
| MySQLResult | open ( Host &host, const string &user, const string &password, const string &db, T *pItem, void(T::*pMethod)( MySQLResult )) |
|
Opens a connection to a server.
|
|
| MySQLResult | sql (string &sqlCommand) |
|
Executes an SQL command.
|
|
| MySQLResult | exit () |
|
Closes the connection to the server.
|
|
| void | setTimeout (int ms) |
|
Setups timeout.
|
|
| virtual void | poll () |
|
This method can be inherited so that it is called on each
Net::poll()
call.
|
|
Protected Member Functions |
|
| void | close () |
|
This flags the service as to be destructed if owned by the pool.
|
|
Example¶
This example inserts a record into a table named 'Test' containing one text column named 'Test'. Configure the parameters at the top of the example accordingly to your setup.
#include "mbed.h"
#include "EthernetNetIf.h"
#include "MySQLClient.h"
#define SQL_SERVER ""
#define SQL_USER ""
#define SQL_PASSWORD ""
#define SQL_DB ""
EthernetNetIf eth;
MySQLClient sql;
MySQLResult sqlLastResult;
void onMySQLResult(MySQLResult r)
{
sqlLastResult = r;
}
int main()
{
printf("Start\n");
printf("Setting up...\n");
EthernetErr ethErr = eth.setup();
if(ethErr)
{
printf("Error %d in setup.\n", ethErr);
return -1;
}
printf("Setup OK\n");
Host host(IpAddr(), 3306, SQL_SERVER);
//Connect
sqlLastResult = sql.open(host, SQL_USER, SQL_PASSWORD, SQL_DB, onMySQLResult);
while(sqlLastResult == MYSQL_PROCESSING)
{
Net::poll();
}
if(sqlLastResult != MYSQL_OK)
{
printf("Error %d during connection\n", sqlLastResult);
}
//SQL Command
//Make command
char cmd[128] = {0};
const char* msg="Hello World!";
sprintf(cmd, "INSERT INTO Test (Test) VALUES('%s')", msg);
//INSERT INTO DB
string cmdStr = string(cmd);
sqlLastResult = sql.sql(cmdStr);
while(sqlLastResult == MYSQL_PROCESSING)
{
Net::poll();
}
if(sqlLastResult != MYSQL_OK)
{
printf("Error %d during SQL Command\n", sqlLastResult);
}
sql.exit();
while(1)
{
}
return 0;
}
This program can be imported from here:
