Ошибка при выполнении запроса: 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...
^