Search code examples
phpsqlsql-serverarduinoesp32

Getting random data from Arduino using esp32 and Insert it in SQL Server using PHP


<?php
$serverName = "";
$connectionOptions = array(
"Database" =\> "",
"UID" =\> "",
"PWD" =\> "",
);

$conn = sqlsrv_connect($serverName, $connectionOptions);

if ($conn === false) {
die(print_r(sqlsrv_errors(), true));
}

echo "Connection Success!<br>";

if (isset($\_GET\['Value1'\]) || isset($\_GET\['Value2'\])) {

    $value1 = isset($_GET['Value1']) ? $_GET['Value1'] : null;
    $value2 = isset($_GET['Value2']) ? $_GET['Value2'] : null;
    
    $sql = "INSERT INTO dbo.ESP (Value1, Value2) VALUES (?, ?)";
    $params = array($value1, $value2);
    
    $result = sqlsrv_query($conn, $sql, $params);
    
    if ($result === false) {
        echo "Error inserting data: " . print_r(sqlsrv_errors(), true);
    } else {
        echo "Data inserted into Value1: " . $value1 . " and Value2: " . $value2;
    }

} else {
echo "Either Value1 or Value2 data must be provided in the request.";

}

sqlsrv_close($conn);
?\>

Why am I getting a Null value in VALUE2 after getting random data(arduino) in VALUE1? Here's the table.

Value1 Value2
manaqg NULL
mgjxm NULL
NULL vuwhn
NULL bjmnc

(Table 1.)

Can someone help me or explain to me how can I get the value like this

Value1 Value2
manaqg vuwhn
mgjxm bjmnc

(Table 2.)

I want the value 2 to be placed in the same row of the value 1 column. Like in the Table 2.


Solution

    1. Please use AND operator instead of OR.
    if(isset($_GET['Value1']) && isset($_GET['Value2'])) {
     // insert
    }
    
    1. If you need to generate random data if Value1 or Value2 is null, please use following code.
    function randStr($l = 8) {
        return substr(md5(uniqid(mt_rand(), true)), 0, $l);
    }
    
    $value1 = isset($_GET['Value1']) ? $_GET['Value1'] : randStr();
    $value2 = isset($_GET['Value2']) ? $_GET['Value2'] : randStr();
    
    // insert