如何在 mysql 中以内爆形式插入数组值

How to insert array value in Implode form in mysql

我有一个以下格式的值,我想将这个键和值转换为内爆形式,以便在 mysql 中的数据库中插入值。

 Array
(
[users_ids] => 
[key_name] => Total_Cubic_Metres
[value_name] => 3.46m³
)

Array
(
[users_ids] => 
[key_name] => Bedroom_Bassinette
[value_name] => 2
)

Array
(
[users_ids] => 
[key_name] => Bedroom_Bedside_Drawers
[value_name] => 2
)

Array
(
[users_ids] => 
[key_name] => Bedroom_Bedside_Table
[value_name] => 2
)

我在 MYSQL "key" 和 "value" 中有 2 个 COLUMN,并以类似这样的内爆形式将上述值存储在此字段中 key:Total_Cubic_Metres,Bedroom_Bassinette,Bedroom_Bedside_Drawers,Bedroom_Bedside_Drawers,Bedroom_Bedside_Table

值:3.46m³, 2, 2,2

您可以使用 bindParam (PHP docs) 并像这样编写您的查询:

$my_Insert_Statement = $my_Db_Connection->prepare("
INSERT INTO TABLE_NAME (
  Total_Cubic_Metres,
  Bedroom_Bassinette,
  Bedroom_Bedside_Drawers,
  Bedroom_Bedside_Drawers,
  Bedroom_Bedside_Table) 
VALUES (
 :Total_Cubic_Metres,  
 :Bedroom_Bassinette,
 :Bedroom_Bedside_Drawers,
 :Bedroom_Bedside_Drawers,
 :Bedroom_Bedside_Table
)");

您可以像这样添加它们:

foreach($arr as $colData){
  $my_Insert_Statement->bindParam($colData['key_name'], $colData['value_name']);
}

并执行准备好的语句:

if ($my_Insert_Statement->execute()) {
  echo "New record created successfully";
} else {
  echo "Unable to create record";
}

试试下面的代码

 function insertQuery($table, $dataArray, $connection){
    $dataArray = array_map(array($connection, 'real_escape_string'), $dataArray);
    $keys = array_keys($dataArray);
    $colmuns = implode(",",$keys);
    $values =array_values($dataArray);
    $valueData = implode("','",$values);
    $query = "INSERT INTO $table ($colmuns) VALUES ('$valueData')";
    $result = mysqli_query($connection, $query);

    if($result){
      $id = mysqli_insert_id($connection);
      return $id;
    }
    return false;
 }