2016-10-06 11 views
-1

配列を介してデータベースに100以上の入力フィールドを挿入しようとしています。主な問題です(これは、これを行う最も安全な方法ではありませんが、これは進行中の作業です)。配列がSQL文に挿入されると、余分な "、"がVALUES()セクションの末尾に配置しますが、配置する変数はありません。つまり、最後のPOST変数が挿入された後に、もう ""を配置しない方法が必要です。どのようにこれについて行くための任意の推奨事項?mysqliは配列を介してPOST値を挿入します

おかげ

//DB setting 
include '../../../plugins/MySQL/connect_db.php'; 

// Create connection 
$conn = new mysqli($dbhost,$dbuser,$dbpass,$dbname); 

// Check connection 
if ($conn->connect_error) { 
    $_SESSION["error"] = "DB Connection failed...";  //Error Message 
} 

// clear variables 
$querystring1 = ""; $querystring2 = ""; 

foreach($_POST as $key => $var) { 
    $querystring2 .= "'".$var."',"; $querystring1 .= $key.","; 
} 
$query1 = "(".$querystring1.") VALUES (".$querystring2.")"; 

$sql = "INSERT INTO `qci_modreport` $query1"; 

print $sql; 

if (!$conn->query($sql)) { 
    echo " 
     <div class=\"alert alert-danger alert-dismissible\"> 
      <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button> 
      <h4><i class=\"icon fa fa-ban\"></i> Error!</h4> 
      There was an error while excuting this query.<br /> 
      (" . $conn->errno . ") " . $conn->error . " 
      </div>"; 
} else { 

    echo " 
     <div class=\"alert alert-success alert-dismissible\"> 
      <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button> 
      <h4><i class=\"icon fa fa-check\"></i> Alert!</h4> 
      Success, record updated successfully. Refreshing database now... 
     </div>"; 
    } 

//close connection 
$conn->close(); 
+0

を大切はい、その重複したが、それでもこのコメントを投稿したいと思います。 $ querystring1 = rtrim($ querystring1、 '、');を追加できます。 $ querystring2 = rtrim($ querystring2、 '、'); foreachループが完了した後。あなたの解決策があります。 –

答えて

1

チェックセットの最初のキーである場合$クエリは他のvarsの他人を追加

$querystring2 = ""; 
    $querystring1 ""; 

    foreach($_POST as $key => $var) { 
     if (querystring2 == "") { 
      $querystring2 .= "'" . $var ; 
      $querystring1 .= $key ; 
     } else { 
     $querystring2 .= ",'".$var."'"; 
     $querystring1 .= ","$key ; 

     } 
    } 
関連する問題