2017-06-21 12 views
1

各ループのためでポストデータを取得した後のmysqlに配列を挿入する方法:私はちょうどフォームからPOSTから値をforeachの方法について学習しました

foreach($_POST as $key => $value) { 
    echo "POST parameter '$key' has '$value'"; 
} 

しかし、私の質問は、それらのデータを挿入する方法である:$キー$あなたの代わりに、このように行い、その後、1つのクエリでのポストにすべてのキー/値を使用したい場合は

mysqli_query($con,"INSERT INTO tableName $key $value) 
+0

を参照してください、配列値からSQLのINSERTクエリを作成します。これのために。 –

+0

は、あなたのSQLカラム名に相当する '$ key'ですか? – Preciel

+0

はい、私の$のキーは私のSQLの列名に相当します。 –

答えて

1
// Not sure how you handled your sql connexion, so I wrote a short example 
$linkDB=new mysqli('localhost', 'user', 'pwd', 'db_name'); 
if($connectDB->connect_error) { 
    die('Erreur de connexion ('.$connectDB->connect_errno.'): '.$linkDB->connect_error); 
    exit(); 
} 
$linkDB->set_charset('utf-8'); 

foreach($_POST as $key=>$value) { 
    /* Just to be safe, I suggest to manually escape the key, 
    * to avoid injections. Someone correct me if it's wrong. 
    */ 
    $key=mysqli_real_escape_string($linkDB, $key); 
    $stmt=$linkDB->prepare(/** @lang MySQL */ 
     "INSERT INTO `tablename` (`$key`) 
     VALUES (?)"); 
    $stmt->bind_param('s', $value); 
    if($stmt !== false) { 
     $stmt->execute(); 
    } 
    $stmt->close(); 
} 
$linkDB->close(); 

:mysqlのdatabase.Canに値が私はこのように行います。

$queryCols=""; 
$queryVals=""; 
foreach($_POST as $key=>$value) { 
    $queryCols.="`".mysqli_real_escape_string($linkDB, $key)."`,"; 
    $queryVals.="'".mysqli_real_escape_string($linkDB, $value)."',"; 
} 
$queryCols=preg_replace("/(,)$/", "", $queryCols); 
$queryVals=preg_replace("/(,)$/", "", $queryVals); 
$stmt=$linkDB->prepare(/** @lang MySQL */ 
    "INSERT INTO `tablename` ($queryCols) 
    VALUES ($queryVals)"); 
if($stmt !== false) { 
    $stmt->execute; 
} 
$stmt->close(); 
$linkDB->close(); 

このような何かはトリックを行う必要があります...;)

+0

ありがとう!私は試してみよう! –

1

あなたは `INSERT BATCHと見なければならない例

以下
$ins_clm = ""; 
$ins_val = ""; 
foreach($_POST as $key => $value) { 
    echo "POST parameter '$key' has '$value'"; 
    $ins_clm .= $key.","; 
    $ins_val .= "'".$value."',"; 


} 
    $ins_clm = substr($ins_clm ,0,strlen($ins_clm)-1); 
    $ins_val = substr($ins_val ,0,strlen($ins_val)-1); 

    $ins_query = "insert into table ($ins_clm) values ($ins_val)"; 


    $r = mysqli_query($dbc,$ins_query); 
+0

ありがとうたくさんの男! –

関連する問題