我有一个场景,我需要将数据输入数据库;然而,我并不总是有相同的数据输入数据库。
我所有的值都存储在一个数组中。
单独的变量中还有另一个值也需要插入。
这是我目前所拥有的,但是我不确定这是否是最好的方法,因为它看起来相当粗糙。
$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/