Ошибка при выполнении запроса: ERROR: syntax error at or near "from"

Я принимаю значения и хочу их записать в БД, но cmdDescription имеет текст from -12 to 14, экранирование str_replace(); не помогает. Как быть ?

$connection = pg_connect("host=$host port=5432 dbname=$database user=$username password=$password");

if (!$connection) {
  echo "Ошибка подключения к базе данных";
  exit;
}

$newId = $_POST['new_id'];
$newName = $_POST['new_name'];
$values = json_decode($_POST['values'], true);

// Создание таблицы draft_ + new_id + new_name, если она не существует
$tableName = "draft_$newId$newName";

$queryCreateTable = "CREATE TABLE IF NOT EXISTS \"$tableName\" (
  index SERIAL PRIMARY KEY,
  art_id INTEGER,
  art_name TEXT,
  cmd_id INTEGER,
  cmd_name TEXT,
  cmd_data TEXT,
  cmd_type TEXT,
  len TEXT,
  data_type TEXT,
  cmd_value INTEGER,
  cmd_description TEXT,
  ver NUMERIC,
  value_ver TEXT,
  changed_by TEXT,
  approved_by TEXT,
  data_ver TIMESTAMP WITHOUT TIME ZONE
)";

$resultCreateTable = pg_query($connection, $queryCreateTable);
if (!$resultCreateTable) {
  echo "Ошибка при создании таблицы: " . pg_last_error($connection);
  exit;
}

// Запись значений в таблицу draft_ + new_id + new_name
foreach ($values as $value) {
  $cmdId = $value[0];
  $cmdName = $value[1];
  $cmdData = $value[2];
  $cmdType = $value[3];
  $len = $value[4];
  $dataType = $value[5];
  $cmdValue = $value[6];
  $cmdDescription = preg_replace("from", "wwww", $value[7]); // Экранирование символа одинарной кавычки
  $dataVer = date('Y-m-d H:i:s'); // Текущая дата и время
  
 
  $queryInsert = "INSERT INTO \"$tableName\" (art_id, art_name, cmd_id, cmd_name, cmd_data, cmd_type, len, data_type, cmd_value, cmd_description, ver, value_ver, changed_by, approved_by, data_ver) 
  VALUES ($newId, '$newName', $cmdId, '$cmdName', '$cmdData', '$cmdType', '$len', '$dataType', $cmdValue, '$cmdDescription', 0, '', '', '', '$dataVer')";

  $resultInsert = pg_query($connection, $queryInsert);
  if (!$resultInsert) {
    echo "Ошибка при выполнении запроса: " . pg_last_error($connection);
    exit;
  }
  
}

echo "Данные успешно записаны в таблицу $tableName";

// Закрытие соединения с базой данных
pg_close($connection);

Подготовленный запрос: INSERT INTO "draft_324235" (art_id, art_name, cmd_id, cmd_name, cmd_data, cmd_type, len, data_type, cmd_value, cmd_description, ver, value_ver, changed_by, approved_by, data_ver) VALUES (32, '4235', 3, 'Eco temp', 'Temperature', 'MSU', '0x0001', 'uint8', from 35 to 75, ' ', 0, '', '', '', '2023-06-08 17:07:34') Ошибка при выполнении запроса: ERROR: syntax error at or near "from" LINE 2: ...mperature of Eco mode', 'MSU', '0x0001', 'uint8', from 35 to... ^


Ответы (0 шт):