我将数据发送到and服务器,and服务器将数据存储在mysql数据库中。如何将stuff (ok)变量返回给arduino并进行串行打印(#stuff)?
String request = "GET "+ repository + "sensor.php?value=" + value + " HTTP/1.0";
send_request(request);
void send_request (String request) {
Adafruit_CC3000_Client client = cc3000.connectTCP(ip, port);
if (client.connected()) {
client.println(request);
client.println(F(""));
Serial.println("Connected & Data sent");
}
else {
Serial.println(F("Connection failed"));
}
char c = client.read();
while (client.connected()) {
while (client.available()) {
char c = client.read();
}
}
Serial.println("Closing connection");
client.close();
}PHP文件:
$stuff = "";
include("conec.php");
if ($_GET["value"]) {
$link=Conection();
$Sql="insert into table (VALUE) values ('".($_GET["value"])."')";
mysql_query($Sql,$link);
$stuff = ok;
}发布于 2014-03-28 06:42:29
我不知道arduino,但我猜client.read();会从响应中读取一个字符。现在,您正在读取变量c并覆盖该变量,直到读取整个响应。尝试创建一个字符串缓冲区,并将字符读取到字符串中。完成后,尝试打印出您的缓冲区。
在没有任何测试的情况下,代码将会是这样的:
string buffer;
int counter = 0;
while (client.connected()) {
while (client.available()) {
buffer[counter++] = client.read();
}
}
Serial.println("Closing connection");
Serial.println("Buffer value is: " + buffer);
client.close();这将取代:
char c = client.read();
while (client.connected()) {
while (client.available()) {
char c = client.read();
}
}
Serial.println("Closing connection");
client.close();为了响应传入的请求,还必须在PHP文件中放入一个echo $stuff。
编辑
你还有几个问题。mysql库已被弃用,我建议您查看mysqli php库。您还容易受到$_GET["value"]直接将SQL注入到SQL查询字符串的攻击。考虑使用函数mysqli_real_escape_string()函数来保护您自己。
您也没有将$stuff赋值给字符串。请务必将ok放在引号中。
https://stackoverflow.com/questions/22700411
复制相似问题