2017-05-18 1 views
0

나는 php와 mysql이 아주 새로워졌습니다. mysql 데이터베이스에 여러 개의 (알 수없는) 행을 삽입하려고했습니다. 데이터는 링크를 통해 테이블에 게시됩니다. - 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&submit링크를 통해 데이터베이스에 여러 행 삽입하기

다음 코드는 단일 행이 게시되어있는 한 완벽하게 작동합니다. 하지만 여러 행을 함께 삽입하는 방법과 링크가 어떻게 보일지 전혀 모르겠습니다. 실제로 데이터를 포함하는 행이 형성되어 마이크로 컨트롤러에 저장됩니다. GPRS를 사용하여 데이터를 보내고 있습니다. 컨트롤러가 한 번에 한 행을 성공적으로 전송하면 데이터는 mysql 데이터베이스에 올바르게 기록됩니다. 그러나 나는 여러 줄을 함께 보내려 애쓰다. 나는 어떤 제안이라도 대단히 감사 할 것이다.

<?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

$ _GET에서 값을 데이터베이스에 삽입하는 것은 좋지 않습니다. 그리고 일반적으로 사용자 입력을 신뢰하십시오. SQL 인젝션에 대해 읽어보십시오. – ArtOsi

+0

고마워, GET은 큰 문제가 아니라 POST로 대체 될 것이다. 하지만 내 주요 문제는 이제 하나의 게시로 여러 행을 삽입하고 있습니다. – Mainul

+0

@Bhupesh Kushwaha가 제공 한 답변이 당신이 원하는 것입니다. 다른 주제는 여기에서 많은 나쁜 습관을 사용했습니다. SQL에 감염되기 전에 항상 데이터의 유효성을 확인해야합니다. – timiTao

답변

1

두 쿼리가 될 것이다 기록 : 더 이상의 기록과 동일

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

합니다.

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

Bhupesh Kushwaha, 대답 해줘서 고마워. 주요 문제는 실제로 행의 총 개수는 알 수 없으며 데이터는 링크를 통해 게시됩니다. 게시물의 시작 부분에서 언급했듯이. timiTao, '나쁜 습관'에 대해 유감스럽게 생각합니다. 저는 PHP에서 완전히 새로운 것입니다. 점차 개선 되길 바랍니다. – Mainul

+0

ok.so URL을 통해 데이터를 가져 와서 데이터를 게시하지 말고 –

+0

GPRS 모뎀을 통해 원격 위치에서 데이터를 가져와야합니다. 부페시, 조금 더 자세히 설명해 주시겠습니까? – Mainul

관련 문제