2017-06-21 65 views
1

我只是學會了如何從POST從形式的foreach價值得到這個職位數據後:如何插入陣列到MySQL爲每個循環

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

但我的問題是如何將這些數據:$關鍵$值到mysql database.Can我只是這樣做:

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

你必須看到'INSERT批'爲此。 –

+0

是你的'$ key'等價於你的SQL列名嗎? – Preciel

+0

是的,我的$ key等價於我的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(); 

如果你想使用所有鍵/值在後一個查詢,然後做這樣的吧。

$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

從創建數組值SQL插入查詢,查看示例

下面
$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

非常感謝! –