나는 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);
?>
$ _GET에서 값을 데이터베이스에 삽입하는 것은 좋지 않습니다. 그리고 일반적으로 사용자 입력을 신뢰하십시오. SQL 인젝션에 대해 읽어보십시오. – ArtOsi
고마워, GET은 큰 문제가 아니라 POST로 대체 될 것이다. 하지만 내 주요 문제는 이제 하나의 게시로 여러 행을 삽입하고 있습니다. – Mainul
@Bhupesh Kushwaha가 제공 한 답변이 당신이 원하는 것입니다. 다른 주제는 여기에서 많은 나쁜 습관을 사용했습니다. SQL에 감염되기 전에 항상 데이터의 유효성을 확인해야합니다. – timiTao