Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在每个循环获取post数据后将数组插入mysql_Php_Mysql_Foreach - Fatal编程技术网

Php 如何在每个循环获取post数据后将数组插入mysql

Php 如何在每个循环获取post数据后将数组插入mysql,php,mysql,foreach,Php,Mysql,Foreach,我刚刚学会了如何从表单的POST中获取每个值: foreach($_POST as $key => $value) { echo "POST parameter '$key' has '$value'"; } 但我的问题是如何将这些数据:$key$value插入mysql数据库。我可以这样做吗: mysqli_query($con,"INSERT INTO tableName $key $value) 如果您希望在一个查询中使用post中的所有键/值,请改为这样做 $queryCo

我刚刚学会了如何从表单的POST中获取每个值:

foreach($_POST as $key => $value) {
  echo "POST parameter '$key' has '$value'";
}
但我的问题是如何将这些数据:$key$value插入mysql数据库。我可以这样做吗:

mysqli_query($con,"INSERT INTO tableName $key $value)
如果您希望在一个查询中使用post中的所有键/值,请改为这样做

$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();

像这样的东西应该能奏效……;)

从数组值创建sql insert查询,请参见下面的示例

$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);

为此,您必须使用
插入批处理查看。您的
$key
是否等同于您的SQL列名?是的,我的$key等同于我的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);