2017-05-18 2 views
0

Ich bin ziemlich neu in PHP und MySQL. Ich habe versucht, mehrere (unbekannte) Anzahl von Zeilen in MySQL-Datenbank einzufügen. Die Daten werden über einen Link in die Tabelle geschrieben. http://localhost:81/logdata.php?CtrlID=3842&DateTime=2017-05-18+11%3A45%3A23&Bat=50.2&LVSD=1&Indt=29.4&Outdt=32.8&submitEinfügen mehrerer Zeilen in die Datenbank über einen Link

Der folgende Code funktioniert perfekt, solange eine einzelne Zeile gebucht wird. Aber ich habe keine Ahnung, wie man mehrere Zeilen zusammenfügt und wie der Link aussehen sollte. Tatsächlich werden Zeilen, die Daten enthalten, in einem Mikrocontroller gebildet und gespeichert. Ich sende die Daten mit Hilfe von GPRS. Der Controller sendet erfolgreich eine Zeile nach der anderen, die Daten werden korrekt in der Datenbank mysql aufgezeichnet. Aber ich kämpfe darum, mehrere Reihen zusammen zu schicken. Ich würde jeden Vorschlag sehr schätzen.

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; //your pwd 
$dbname = "mirzu"; 

// Create connection 
$conn = new mysqli($servername, $username, $password,$dbname); 
if($conn){ 
    echo 'Successfully Connected database.'; 
    } 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

//if(isset($_GET['submit'])){ // 
    $ID = $_GET['CtrlID']; 
    $DateTime = $_GET['DateTime']; 
    $battery = $_GET['Bat']; 
    $LVSD = $_GET['LVSD']; 
    $IndoorT = $_GET['Indt']; 
    $OutdoorT = $_GET['Outdt']; 

$totalCtrlID = sizeof($ID); 

for($i=0;$i<$totalCtrlID;$i++) { 

    $InsCtrlID = [$ID][$i]; 
    $InsDateTime = [$DateTime][$i]; 
    $Insbattery = [$battery][$i]; 
    $InsLVSD = [$LVSD][$i]; 
    $InsIndoorT = [$IndoorT][$i]; 
    $InsOutdoorT = [$OutdoorT][$i]; 


$query = "INSERT INTO btsdata (CtrlID,DateTime,Batt,LVSD,IndT,OutdT)". 
"VALUES ('$InsCtrlID','$InsDateTime','$Insbattery','$InsLVSD','$InsIndoorT','$InsOutdoorT');"; 

} 

if (mysqli_query($conn, $query)) { 
    echo "New record created successfully into database"; 
} else { 
    echo "Error: " . $query . "<br>" . mysqli_error($conn); 
} 
//} 
mysqli_close($conn); 
?> 
+1

Es ist eine schlechte Idee, Werte aus $ _GET in die Datenbank einzufügen. Und generell auf Benutzereingaben zu vertrauen. Lesen Sie über SQL-Injektionen. – ArtOsi

+0

Danke, GET wird mit POST ersetzt, kein großes Problem. Aber mein Hauptproblem ist jetzt das Einfügen mehrerer Zeilen mit einem Eintrag. – Mainul

+0

Beantwortet von @Bhupesh Kushwaha ist was du suchst. Anderes Thema, du hast hier viele schlechte Praktiken benutzt. Sie sollten Daten immer validieren, bevor Sie SQL infizieren. – timiTao

Antwort

1

Zwei zeichnet die Abfrage werden wird:

INSERT INTO TABLE (column1, column2) VALUES ('data', 'data'), ('data', 'data') 

Samen als mehr als zwei Rekord.

INSERT INTO tbl_name 
     (a,b,c) 
    VALUES 
     (1,2,3), 
     (4,5,6), 
     (7,8,9); 
+0

Bhupesh Kushwaha, danke für die Antwort. Die Hauptprobleme sind tatsächlich, die Gesamtzahl der Zeilen ist unbekannt und die Daten werden über einen Link gepostet, wie ich zu Beginn meines Posts erwähnt habe. timiTao, Entschuldigung für die "schlechten Praktiken", ich bin komplett neu in PHP. Hoffe, allmählich zu verbessern. – Mainul

+0

ok.so erhalten Sie keine Daten über URL senden Sie Ihre Daten und erhalten Sie –

+0

Die Daten müssen von einem Remote-Standort über GPRS-Modem kommen. Bhupesh, könnten Sie bitte ein wenig ausarbeiten. – Mainul

Verwandte Themen