Php 如何在每个循环获取post数据后将数组插入mysql
我刚刚学会了如何从表单的POST中获取每个值: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
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);