Php 是否使用动态列名插入?

Php 是否使用动态列名插入?,php,mysql,sql,Php,Mysql,Sql,我有一个带有绑定参数的查询,用于将数据插入表中。我正在使用PDO。我的想法是,我有一张发票,上面有订单号、日期、时间等。发票上有一个产品清单,上面有产品数量,但是不同发票上的独特产品有所不同。因此,这意味着插入数量的列将因发票而异。有4种产品的发票A将在4列中插入数据,而有5种产品的发票B将处理5种产品 $sth = conn->prepare("INSERT INTO test1 (col_1, col_2, col_3) VALUES (:order, :date, :time)");

我有一个带有绑定参数的查询,用于将数据插入表中。我正在使用PDO。我的想法是,我有一张发票,上面有订单号、日期、时间等。发票上有一个产品清单,上面有产品数量,但是不同发票上的独特产品有所不同。因此,这意味着插入数量的列将因发票而异。有4种产品的发票A将在4列中插入数据,而有5种产品的发票B将处理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();
这个查询工作并将变量的所有值插入到相应的列中。如何使columns函数也类似于绑定参数

当我尝试下面这样的方法时,它不起作用

 $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列名创建了值。当我试图解决这个问题时,我在搜索中发现了这篇文章,这对我有所帮助


但问题的一部分是,我不知道我将提前插入多少列名称,而上述链接的想法似乎只有在您提前知道列的名称时才起作用。有什么建议吗

你不能这么简单。你可以使用常规的旧php,但我担心如果有人说“我不知道我将提前插入多少列名”听起来好像db模式会出错。清单应该是(order_id,product),每个产品1行(orderid:29498498 product:dogfood),(orderid:29498498 product:catfood)等具体是如何做到的。这将成为S.O.的主要内容。我建议大多数教程都会向您展示这种方法。