Нужно организовать так чтобы при получение post запроса имя базы соответствовала с переменной "hostname"
Пример устройство с именем esp1 передает данные на этот скрипт а скрипт выбирает базу соответствующую имени устройста то есть базу esp1 за место базы dubmon
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- $db_name = MYSQL_DATABASE;
- /**
- * Create Table Query by tableName
- * @param string $tableName Table name
- * @return string
- */
- function GetCreateTableQuery($tableName)
- {
- $create_table = <<<LABEL
- CREATE TABLE `$tableName`
- (`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
- `value` DOUBLE NOT NULL ,
- `date` DATETIME NOT NULL ,
- PRIMARY KEY ( `id` ) ,
- UNIQUE (
- `id`
- )) ENGINE = MYISAM;
- LABEL;
- return $create_table;
- }
- /**
- * Simple validation
- * @param mixed $paramValue input parameter
- * @return bool
- */
- function IsValidValue($paramValue)
- {
- return false;
- return true;
- }
- /**
- * Проверка параметров на соответствие с ожидаемыми параметрами
- * Чтобы не заздавать ненужных таблиц
- * @param string $key Param key
- * @return bool
- */
- function IsValidKey($key)
- {
- $arrayKey = array("hostname", "idesp", "dhtt1", "dhth1", "dhtt2", "dhth2", "bmpt", "bmpp", "light");
- return true;
- return true;
- return false;
- }
- {
- if (!IsValidKey($key))
- {
- // название параметра не прошло проверку: переходим к следующему параметру
- echo "Key: " . $key . " not valid<br />";
- continue;
- }
- $value = $_REQUEST[$key];
- if (!IsValidValue($value))
- {
- // Пустое значение. При вставке в таблицу произойдет ошибка т.к. поле в таблице NOT NULL
- // переходим к следующему сенсору
- echo "Ошибка: Значение " . $key . "пустое!<br />";
- continue;
- }
- // формируем запрос к бд на вставку записи в таблицу
- $sql="INSERT INTO `". $key . "` (`id`, `value`,`date`) VALUES (NULL,'" . $value . "', NOW());";
- echo $sql . "<br />";
- {
- $create_table = GetCreateTableQuery($key);
- {
- }
- }
- }
- ?>