插入动态列名称?

时间:2016-03-01 02:12:39

标签: php mysql sql

我有一个带有绑定参数的查询,用于将数据插入表中的值。我正在使用PDO。我的想法是,我的发票上有订单号,日期,时间等。发票上有产品清单及其数量,但是不同产品的数量因发票而异。因此,这意味着插入数量的列数将因发票而异。带有4种产品的发票A将数据插入4列而不是发票B,其中5种产品将处理5种产品。

$sth = conn->prepare("INSERT INTO test1 (col_1, col_2, col_3) VALUES (:order, :date, :time)");

$sth->bindParam(':order', $orderID);
$sth->bindParam(':date', $date);
$sth->bindParam(':time', $time);

$sth->execute();

此查询可以工作,并将我对变量的任何值插入到相应的列中。如何使列函数也与绑定参数类似?

当我尝试下面的内容时,它不起作用。

 $sth = conn->prepare("INSERT INTO test1 (:col1, :col2) VALUES (:order, :date, :time)");

  $sth->bindParam(':order', $orderID);
  $sth->bindParam(':date', $date);
  $sth->bindParam(':time', $time);
  $sth->bindParam(':col1', $col1);
  $sth->bindParam(':col2', $col2);

我在test1表中创建了变量$ col1和$ col2列名称的值。我在搜索中遇到了这个帖子,而我试图解决这个问题,这有点帮助。

Can PHP PDO Statements accept the table or column name as parameter?

部分问题是,我不知道我将提前插入多少列名称,如果您事先知道列数,上述链接的想法似乎才有效。有什么建议吗?

0 个答案:

没有答案