如何在 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;
}
我有一个以下格式的值,我想将这个键和值转换为内爆形式,以便在 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;
}