我试图使这个project。当我尝试编译此代码时:编译时出现Arduino + MySql + MySqlIO错误
#include <mysql.h>
char *host, *user, *pass, *db;
int isconnected = 0;
void setup()
{
Serial.begin(9600);
host = "localhost";
user = "root";
pass = "";
db = "arduino";
isconnected = mysql_connect(host,user,pass,db);
if(isconnected){
Serial.print("Connected to ");
Serial.println(host);
}
else{
Serial.println("Connection failed.");
}
mysql_close();
}
void loop(){}
也许问题出现在库或Arduino IDE中。我得到这些错误和警告:
C:\Users\Mateusz\Documents\Arduino\libraries\mysql\examples\ConnectToMysql\ConnectToMysql.ino: In function 'void setup()':
C:\Users\Mateusz\Documents\Arduino\libraries\mysql\examples\ConnectToMysql\ConnectToMysql.ino:30:7: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
host = "localhost";
^
C:\Users\Mateusz\Documents\Arduino\libraries\mysql\examples\ConnectToMysql\ConnectToMysql.ino:31:7: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
user = "root";
^
C:\Users\Mateusz\Documents\Arduino\libraries\mysql\examples\ConnectToMysql\ConnectToMysql.ino:32:7: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
pass = "";
^
C:\Users\Mateusz\Documents\Arduino\libraries\mysql\examples\ConnectToMysql\ConnectToMysql.ino:33:5: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
db = "arduino";
^
C:\Users\Mateusz\Documents\Arduino\libraries\mysql\mysql.cpp: In function 'String mysql_result_query(String, String)':
C:\Users\Mateusz\Documents\Arduino\libraries\mysql\mysql.cpp:67:10: error: converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'
return 0;
^
C:\Users\Mateusz\Documents\Arduino\libraries\mysql\mysql.cpp:71:10: error: converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'
return 0;
^
exit status 1
编辑: 有图书馆mysql.cpp。
#include "mysql.h"
int mysql_connect(char *host, char *user, char *pass, char *db){
Serial.print("host=");
Serial.println(host);
Serial.print("user=");
Serial.println(user);
Serial.print("pass=");
Serial.println(pass);
Serial.print("db=");
Serial.println(db);
Serial.println("mysql_connect()");
int x = Serial.read();
if(x == '-')
return 0;
while(x <= 0){
x = Serial.read();
if(x == '-')
return 0;
}
return x-48;
}
int is_mysql(){
Serial.print("is_mysql()");
int x = Serial.read();
if(x == '-')
return 0;
while(x <= 0){
x = Serial.read();
if(x == '-')
return 0;
}
return x-48;
}
void mysql_close(){
Serial.println("mysql_close()");
}
int mysql_query(char *query){
Serial.print("query=");
Serial.println(query);
int x = Serial.read();
if(x == '-' || x == '0')
return 0;
while(x <= 0){
x = Serial.read();
if(x == '-' || x == '0')
return 0;
}
return x-12;
}
String mysql_result_query(String query, String field){
String res = "";
String q = "query=" + query + "&field=" + field;
Serial.println(q);
res = Serial.readString();
if(res == "-")
return 0;
while(res.length() <= 0){
res = Serial.readString();
if(res == "-")
return 0;
}
return res;
}
而且有mysql.h中:
#ifndef mysql_h
#define mysql_h
#include "Arduino.h"
int mysql_connect(char *, char *, char *, char *);
void mysql_close();
int is_mysql();
int mysql_query(char *);
String mysql_result_query(String, String);
#endif
我不知道如何解决这个问题。我无法找到任何解决方案。对不起,我的英文:)
没有工作,仍然是相同的错误 – Matfik69
错误来自你刚才添加的功能。看我的编辑。 – Ouss4