我有一个数组,其中包含我想要输入数据库的值。我的数据库结构如下:
1 个字符串值、7 个 int 值、5 个浮点值、1 个字符串值。
我想要传递到数据库的数据位于一个数组中,输入正确,$outputArr[]
我尝试使用以下代码片段但没有成功:
$escaped_values = array_map('mysqli_real_escape_string', array_values($outputArr));
$values = implode(", ", $escaped_values);
$query = "INSERT INTO table(columns) VALUES ($values)
(type)var_export($outputArr[$i])
对于 $outputArr
和
的每个元素
$query = INSERT INTO 表(列)VALUES ('$Opos0', $Opos1, $Opos2, ... , '$Opos13')
如何将数据传递到数据库,同时保持正确的数据类型?
现在编写的整个函数:
$outputArr = array();
foreach($numArr as $k1 => $val){
foreach($val as $k2 => $val2){
$outputArr[$k2] = $numArr[$k1][$k2];
}
$Opos0 = serialize($connect->real_escape_string(var_export($outputArr[0])));
$Opos1 = serialize((int)var_export($outputArr[1]));
$Opos2 = serialize((int)var_export($outputArr[2]));
$Opos3 = serialize((int)var_export($outputArr[3]));
$Opos4 = serialize((int)var_export($outputArr[4]));
$Opos5 = serialize((int)var_export($outputArr[5]));
$Opos6 = serialize((int)var_export($outputArr[6]));
$Opos7 = serialize((int)var_export($outputArr[7]));
$Opos8 = serialize((float)var_export($outputArr[8]));
$Opos9 = serialize((float)var_export($outputArr[9]));
$Opos10 = serialize((float)var_export($outputArr[10]));
$Opos11 = serialize((float)var_export($outputArr[11]));
$Opos12 = serialize((float)var_export($outputArr[12]));
$Opos13 = serialize($connect->real_escape_string(var_export($outputArr[13])));
$query = "INSERT INTO `num_data`(`CalledNum`, `NumCalls`, `uniqueCalls`, `dur1sec`, `dur30sec`, `dur60sec`, `dur90sec`, `dur120sec`,
`grossIncome`, `cogs`, `split`, `netIncome`, `nipuc`, `CallDate`) VALUES ($Opos0, $Opos1, $Opos2, $Opos3, $Opos4, $Opos5, $Opos6,
$Opos7, $Opos8, $Opos9, $Opos10, $Opos11, $Opos12, $Opos13)";
$result = $connect->query($query);
if($result == false){
echo "<p>Error entering data into num_data!</p>";
echo "<pre>", print_r( $query ), "</pre>";
die(mysqli_error($connect));
}
$k2 = 0;
} //Parse numArr info into INSERT command.`
最佳答案
我会使用serialize函数并将结果存储为 BLOB 字段。您可以在获取时反序列化以取回数据。
关于php - 使用 PHP 将混合数据从数组输入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30877102/