Diferencia entre revisiones de «MySQL»
De ArduWiki
(→Métodos) |
(→Ejemplo) |
||
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 8: | Línea 8: | ||
== Sintaxis == | == Sintaxis == | ||
<pre> | <pre> | ||
+ | #include <Ethernet.h> | ||
+ | #include <MySQL_Connection.h> | ||
+ | #include <MySQL_Cursor.h> | ||
</pre> | </pre> | ||
Línea 31: | Línea 34: | ||
== Ejemplo == | == Ejemplo == | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
+ | #include <Ethernet.h> | ||
+ | #include <MySQL_Connection.h> | ||
+ | #include <MySQL_Cursor.h> | ||
+ | |||
+ | byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; | ||
+ | |||
+ | IPAddress server_addr(192.168,1,35); //IP del servidor MySQL | ||
+ | char usuario[] = "root"; //usuario MySQL | ||
+ | char clave[] = ""; //Clave usuario MySQL | ||
+ | |||
+ | //Consulta | ||
+ | char query[] = "SELECT campo1 FROM base.tabla WHERE campo2 = 'Lima'"; | ||
+ | |||
+ | EthernetClient client; | ||
+ | MySQL_Connection conn((Client *)&client); | ||
+ | //Crea instancia de conexion | ||
+ | MySQL_Cursor cur = MySQL_Cursor(&conn); | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(115200); | ||
+ | Ethernet.begin(mac_addr); | ||
+ | Serial.println("Conectando..."); | ||
+ | if (conn.connect(server_addr, 3306, usuario, clave)) { | ||
+ | delay(1000); | ||
+ | }else{ | ||
+ | Serial.println("Fallo la conexion."); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | row_values *row = NULL; | ||
+ | long head_count = 0; | ||
+ | delay(1000); | ||
+ | Serial.println("1) Demonstrating using a cursor dynamically allocated."); | ||
+ | // Initiate the query class instance | ||
+ | MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn); | ||
+ | //Ejecutando la consulta | ||
+ | cur_mem->execute(query); | ||
+ | //Opcionalmente se extraen los nombres de columna | ||
+ | column_names *columns = cur_mem->get_columns(); | ||
+ | |||
+ | // Read the row (we are only expecting the one) | ||
+ | do { | ||
+ | row = cur_mem->get_next_row(); | ||
+ | if (row != NULL) { | ||
+ | head_count = atol(row->values[0]); | ||
+ | } | ||
+ | } while (row != NULL); | ||
+ | //Borrando el cursor de memoria | ||
+ | delete cur_mem; | ||
+ | |||
+ | // Show the result | ||
+ | Serial.print(" NYC pop = "); | ||
+ | Serial.println(head_count); | ||
+ | |||
+ | delay(500); | ||
+ | |||
+ | Serial.println("2) Demonstrating using a local, global cursor."); | ||
+ | // Execute the query | ||
+ | cur.execute(query); | ||
+ | // Fetch the columns (required) but we don't use them. | ||
+ | cur.get_columns(); | ||
+ | // Read the row (we are only expecting the one) | ||
+ | do { | ||
+ | row = cur.get_next_row(); | ||
+ | if (row != NULL) { | ||
+ | head_count = atol(row->values[0]); | ||
+ | } | ||
+ | } while (row != NULL); | ||
+ | // Now we close the cursor to free any memory | ||
+ | cur.close(); | ||
+ | |||
+ | // Show the result but this time do some math on it | ||
+ | Serial.print(" NYC pop = "); | ||
+ | Serial.println(head_count); | ||
+ | Serial.print(" NYC pop increased by 12 = "); | ||
+ | Serial.println(head_count+12); | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revisión actual del 18:20 16 jun 2019
Contenido
Descripción
La librería MySQL de Charles Bell se puede usar para conectar su proyecto Arduino directamente a un servidor MySQL sin usar una computadora intermedia o un servicio web o basado en la nube.
Tener acceso directo a un servidor de base de datos significa que puede almacenar los datos adquiridos de su proyecto, así como verificar los valores almacenados en las tablas en el servidor. Esto también significa que puede configurar su propio servidor MySQL local para almacenar sus datos y eliminar la necesidad de conectividad a Internet. Si eso no es un problema, aún puede conectarse y almacenar datos en un servidor MySQL a través de su red, Internet o incluso en la nube.
Placas aplicables
Sintaxis
#include <Ethernet.h> #include <MySQL_Connection.h> #include <MySQL_Cursor.h>
Métodos
Método | Descripción |
---|---|
connect() | Conecta con la base de datos |
execute() | Ejecuta una consulta |
show_results() | Muestra el resultado de la consulta |
field_struct() | Muestra la estructura de la tabla |
Comentarios
Advertencias
Ejemplo
#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server_addr(192.168,1,35); //IP del servidor MySQL
char usuario[] = "root"; //usuario MySQL
char clave[] = ""; //Clave usuario MySQL
//Consulta
char query[] = "SELECT campo1 FROM base.tabla WHERE campo2 = 'Lima'";
EthernetClient client;
MySQL_Connection conn((Client *)&client);
//Crea instancia de conexion
MySQL_Cursor cur = MySQL_Cursor(&conn);
void setup() {
Serial.begin(115200);
Ethernet.begin(mac_addr);
Serial.println("Conectando...");
if (conn.connect(server_addr, 3306, usuario, clave)) {
delay(1000);
}else{
Serial.println("Fallo la conexion.");
}
}
void loop() {
row_values *row = NULL;
long head_count = 0;
delay(1000);
Serial.println("1) Demonstrating using a cursor dynamically allocated.");
// Initiate the query class instance
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
//Ejecutando la consulta
cur_mem->execute(query);
//Opcionalmente se extraen los nombres de columna
column_names *columns = cur_mem->get_columns();
// Read the row (we are only expecting the one)
do {
row = cur_mem->get_next_row();
if (row != NULL) {
head_count = atol(row->values[0]);
}
} while (row != NULL);
//Borrando el cursor de memoria
delete cur_mem;
// Show the result
Serial.print(" NYC pop = ");
Serial.println(head_count);
delay(500);
Serial.println("2) Demonstrating using a local, global cursor.");
// Execute the query
cur.execute(query);
// Fetch the columns (required) but we don't use them.
cur.get_columns();
// Read the row (we are only expecting the one)
do {
row = cur.get_next_row();
if (row != NULL) {
head_count = atol(row->values[0]);
}
} while (row != NULL);
// Now we close the cursor to free any memory
cur.close();
// Show the result but this time do some math on it
Serial.print(" NYC pop = ");
Serial.println(head_count);
Serial.print(" NYC pop increased by 12 = ");
Serial.println(head_count+12);
}
Vea también