php - 使用 PHP 将混合数据从数组输入 MySQL 数据库

标签 php mysql

我有一个数组,其中包含我想要输入数据库的值。我的数据库结构如下:
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/

相关文章:

php - 如何在导出的xml中添加DOCTYPE?

php - Laravel 5.8 - 如何将文件从存储目录移动到公共(public)目录?

php - 将来自另一个表的每行作为数组连接起来

java - 我应该在创建数据库之前绘制ER图吗

javascript - 图片不会显示在 Wordpress 模板中

php - Codeigniter 返回自定义 ID

php - mysql 查询使用哈希密码更新数据库

mysql - 如何使用 SQL 按特定类别按比例对总天数进行分类或划分

php - 如何在 MySQL 和 PHP 中编辑表值?

MySQL:我可以更新当前结果集中的记录还是需要 2 个并行查询/连接