Как вставить переменную в строку в РНР?

Здравствуйте. Нужно сделать запрос к БД, а именно создание таблиц. Вот запрос
public function start()
    {
        $timestamp = time();
        $query = "
            INSERT INTO `stopwatch` (`chat_id`, `timestamp`)
            VALUES ('$this->stopwatch_id', '$timestamp')
            ON DUPLICATE KEY UPDATE timestamp = '$timestamp'       
        ";
        return $this->mysqli->query($query);
    }

Мне нужно, чтобы имя базы данных бралось из файла .env. Думал, что нужно прописать так: INSERT INTO $_ENV['BD_NAME'].... Но выходит ошибка. Что делать?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Как то так:
class Stopwatch 
{
	private $mysqli;
	private $stopwatch_id;
	private $db;
	
	function __construct($mysqli, $stopwatch_id) 
    {
        $this->db = $_ENV['BD_NAME'];
       	$this->mysqli = $mysqli;
        $this->stopwatch_id = $stopwatch_id;
    }
	
	public function start()
    {
        $timestamp = time();
        $query = "
            INSERT INTO `$this->db`.`stopwatch` (`chat_id`, `timestamp`)
            VALUES (?, ?)
            ON DUPLICATE KEY UPDATE timestamp = ?
        ";
        $stmt = $this->mysqli->prepare($query);

        /* bind parameters for markers */
        $stmt->bind_param("iii", $this->stopwatch_id, $timestamp, $timestamp);

        /* execute query */
        return $stmt->execute();
    }
}


PHP sandbox
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы