如何在MySQL查询中包含PHP变量

时间:2019-05-23 20:47:46

标签: php mysql sql variables

我想在数据库中添加一个额外的列,并将其命名为price_23-05-2019

如何将其放入工作查询中?

我现在有这个,显然不起作用:

  $date = date("d-m-Y");

  $query = 
  "ALTER TABLE `products_05_2019`
  ADD price_'.$date.' DECIMAL(7,2)";

($result = mysqli_query($link, $query))

2 个答案:

答案 0 :(得分:2)

对于每个日期,您实际上都不应有单独的列。应该只有一个date列,以日期为值,并且每个日期都有一个单独的行。

但是如果您必须这样做,这是解决问题的方法。

如果在列名中使用-,则必须将该名称括在反引号中。

  $date = date("d-m-Y");

  $query = 
  "ALTER TABLE `products_05_2019`
  ADD `price_$date` DECIMAL(7,2)";

  $result = mysqli_query($link, $query);

但是使用_代替-可能会更好。

  $date = date("d_m_Y");

  $query = 
  "ALTER TABLE `products_05_2019`
  ADD price_'.$date.' DECIMAL(7,2)";

  $result = mysqli_query($link, $query);

答案 1 :(得分:0)

正如@ficuscr所说,您可能希望看一下数据库的设计,因此不必从代码中创建列。

无论如何,当我有一个列名取决于代码时,该怎么做是创建一个新变量,然后将其包含在查询中:

  $date = date("d-m-Y");

  $column_name = 'price_'.$date;
  $query = "ALTER TABLE `products_05_2019` ADD `$column_name` DECIMAL(7,2)";