Как я могу изменить значение базы данных в соответствии с исходящей ссылкой - PullRequest
3 голосов
/ 05 июня 2019

Я не знаю, как сказать, но я попробую:)

Я использую NodeMCU и модуль CAM, модуль CAM прочитал QR-код, и пользователь 1 получил ссылку, подобную этой: sitename.com/project / userid1

Например, другой пользователь 2 имеет ссылку на sitename.com/project/userid2.И модуль CAM отправить ссылку на строку в NODEMCU Я сделал этот шаг.

NODEMCU может подключить эту ссылку к Интернету.Главный вопрос: как мне это сделать:

Когда пользователь входит в систему с определенного адреса, например, пользователь 1, получает ссылку sitename.com/project/userid1.Как уменьшить баланс user1 (определяется в базе данных)?Таким образом, я могу сделать транзакцию в базе данных, используя информацию, полученную по любой ссылке.Как сайт может узнать, как я пришел по этой ссылке?

Пожалуйста, помогите мне.

РЕДАКТИРОВАТЬ 1

Я решил отправить только ID для пользователя, для userid1 отправьте 1, userid2 отправьте 2 ... Когда я получу «1», я хочу пойти ID = 1 пользователь и получить баланс user1.

Итак, это новый вопрос.Когда я подключаюсь с помощью nodemcu к MYSQL, как я могу получить значение баланса (это член пользователей таблицы) и как отправить значение balance = balance-1 в MYSQL?

Как добавить этот код в arduino

 UPDATE users SET balance=balance_new WHERE id = readx

readx come 1,2,3,.. to the CAM module
users name the mysql table 
balance is the member of the users

Это мой некоторый код: (Как можно добавить часть mysql получить значение и отправить значение)

#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
int balance;

const char* ssid = "ssid";
const char* password = "pas";
IPAddress server_addr(xx, xx ,xx, x);          // MySQL server IP
char user[] = "sitename_user";           // MySQL user
char password[] = "pass";       // MySQL password
void setup () {

Serial.begin(19200);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(1000);
Serial.print("Connecting..");

}

 while (conn.connect(server_addr, 3306, user, password) != true) {
    delay(200);
    Serial.println("Connecting SQL..");

  }
      Serial.println("Connected SQL..");


}

void loop() {
 if(Serial.available()>0)    //Checks is there any data in buffer 
  {
    String readx=Serial.readString();
    Serial.print(readx);  //Read serial data byte and send back to serial monitor

if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
//Get the request response payload



HTTPClient http;  //Declare an object of class HTTPClient

http.begin(readx);  //Specify request destination
int httpCode = http.GET();                                                                  //Send the request

if (httpCode > 0) { //Check the returning code

String payload = http.getString(); 
                //Print the response payload

}

http.end();   //Close connection

}
  }

delay(30000);    //Send a request every 30 seconds

}
...