php - 如何使用 PDO 插入数据库,其中要插入的列发生变化?

标签 php mysql pdo

我有一个场景,我需要将数据输入数据库;然而,我并不总是有相同的数据输入数据库。

我所有的值都存储在一个数组中。

单独的变量中还有另一个值也需要插入。

这是我目前所拥有的,但是我不确定这是否是最好的方法,因为它看起来相当粗糙。

$cols = "Id, ";
$vars = ":Id, ";
$start = "INSERT INTO table (";
$mid = ") VALUES (";
$end = ")";
    foreach($array as $key => $val){
        $cols .= ", " . $key;
        $vars .= ", :" . $key;
    }
    // Probs a better way to do this?
}
$stm = $this->db->prepare($start . $cols . $mid . $vars . $end);
//Now I use this statement to enter variables into DB

只是为了澄清我期望什么样的数据来帮助解释我正在尝试做的事情。假设我有一个表格,其中列出了特定供应商每天售出的水果数量。所以这些列将是苹果、香蕉、橙子、草莓。

现在供应商可能只销售一种水果,在这种情况下,我将只有该类型水果的数据。然而,供应商也可能出售两种不同类型的水果,他们也可能出售 0 个水果。

所以我将有以下形式的数据:

  • 供应商 1,苹果:0,橘子:2
  • 供应商 2,苹果:1,草莓:3
  • 供应商 3,苹果:5,香蕉:4

我需要将其插入到同一个表中。

最佳答案

看来我在这里找不到其他替代解决方案。但是,根据对这个问题的评论,我想提一下;当您允许像这样动态选择列时,您需要警惕 SQL 注入(inject)。

一篇文章here很好地解释了需要做什么来防止 SQL 注入(inject)。

关于php - 如何使用 PDO 插入数据库,其中要插入的列发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39314261/

相关文章:

javascript - ReCaptcha 2.0 与 AJAX

mysql - SQL在一个事务中插入一条包含多个关系数据的记录

php - 使用pdo_sqlite在SQL查询中的'LIKE'运算符非常慢

php列出多次使用相同IP地址注册的用户

php - Facebook 发送消息

php - 添加 .htaccess 文件后表单提交停止工作

php - 使用 PDO 和 PHP 函数选择数据

php - 使用 php mysql 动态创建带有选项组的选项列表

php - 选择 interbase 并插入到 mysql 仅显示 1 条记录

javascript - 防止表单在没有ajax的情况下提交后重定向