Как включить переменную PHP в запрос MySQL - PullRequest
0 голосов
/ 23 мая 2019

Я хочу добавить дополнительный столбец в мою базу данных и дать ему имя 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 ]

2 голосов
/ 23 мая 2019

Вы действительно не должны иметь отдельные столбцы для каждой даты. Должен быть только столбец 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);
0 голосов
/ 23 мая 2019

Как говорит @ficuscr выше, вы, возможно, захотите взглянуть на дизайн вашей базы данных, чтобы вам не приходилось создавать столбцы из кода.

В любом случае, когда я использую имя столбца в зависимости от кода, я использую его для создания новой переменной и включения ее в запрос:

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

  $column_name = 'price_'.$date;
  $query = "ALTER TABLE `products_05_2019` ADD `$column_name` DECIMAL(7,2)";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...