Здравствуйте. У меня такая проблема - нужно с ардуино передать значение переменной в БД MySQL, которая находится на хостинге (с phpmyadmin). Для подключения я использую esp-01, раздал с телефона WiFi и подключил. После отработки кода в таблице ничего не появляется. Ссылка дана на вход в phpmyadmin. Код (C++): #include <WiFi.h> #include <SoftwareSerial.h> int check = 1998; WiFiClient client; SoftwareSerial mySerial(9, 10); #define WIFI_SERIAL mySerial void setup() { Serial.begin(9600); while (!Serial) { } Serial.print("Serial init OK\r\n"); WIFI_SERIAL.begin(9600); } void loop() { client.connect("ispm11.hostfx.ru/u107096/phpmyadmin/", 80); client.print( "GET /test.php?"); client.print("check="); client.print(check); client.println( "Connection: close" ); client.println(); client.println(); client.stop(); client.flush(); } И собственно сам test.php PHP: <?php //адрес хоста $dbhost = '82.202.172.211'; //Имя пользователя $dbuser = 'u107096_u107096'; //пароль для подключения к Mysql $dbpass = ' '; //имя базы данных $dbname = 'u107096_mydb1'; // сохраняем IP $client_ip = $_SERVER['REMOTE_ADDR']; // получение значения переменной $check = $_GET["check"]; //устанавливаем подключение к MySQL $connect = mysql_connect($dbhost, $dbuser, $dbpass); // проверяем состояние подключения if(! $connect ) { die('Could not connect: ' . mysql_error()); } // Выбираем базу данных mysql_select_db ($dbname, $connect); //Отправляем данные в таблицу $sql = "INSERT INTO Shots VALUES ('$client_ip', '$check')"; // проверяем состояние отправки if(!mysql_query($sql)) {echo '<p><b>Data upload error!</b></p>';} else {echo '<p><b>OK</b></p>';} // закрываем соединение с базой mysql_close($connect); ?> На самой плате не горит диод L
Функции mysql_* удалены из PHP 7, а в PHP 5 настоятельно не рекомендуют использовать, т.к. устарели. Используйте mysqli или PDO
Проблема осталась та же, несмотря на переписывание на mysqli PHP: <?php //адрес хоста $dbhost = '82.202.172.211'; //Имя пользовтаеля $dbuser = 'u107096_u107096'; //пароль для подключения к Mysql $dbpass = ''; //имя базы данных $dbname = 'u107096_mydb1'; // сохраняем IP на всякий случай $client_ip = $_SERVER['REMOTE_ADDR']; // получение значения переменной $check = $_GET["check"]; //устанавливаем подключение к MySQL $connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); // проверяем состояние подключения if(! $connect ) { die('Could not connect: ' . mysqli_connect_error() . PHP_EOL); } echo "Соединение с MySQL установлено!" . PHP_EOL; echo "Информация о сервере: " . mysqli_get_host_info($link) . PHP_EOL; //Отправляем данные в таблицу $sql = "INSERT INTO Shots VALUES ('$client_ip', '$check')"; // проверяем состояние отправки if(!mysqli_query($sql)) {echo '<p><b>Data upload error!</b></p>';} else {echo '<p><b>OK</b></p>';} // закрываем соединение с базой mysqli_close($connect); ?>
Вы хоть через браузер пробовали этот код запускать? Он же не рабочий. Как-то так: PHP: <?php $client_ip = $_SERVER['REMOTE_ADDR']; $check = $_GET["check"]; $mysqli = new mysqli("localhost", "root", "", "test_base"); if ($mysqli->connect_errno) { exit($mysqli->connect_error); } $prepared = $mysqli->prepare("INSERT INTO `test_table` (`column1`, `column2`) VALUES (?, ?); "); if(!$prepared) { exit('Error'); } $result = $prepared->bind_param("ss",$client_ip,$check); if(!$result) { exit('Error'); } $result = $prepared->execute(); if(!$result) { exit('Error'); } $prepared->close(); $mysqli->close();