Да, ваше предупреждение связано с тем, что вы пытаетесь вставить массив в базу данных. В текущем коде переменные `$price` и `$sale` не присваиваются значением из POST-запроса. Вместо этого вы создаете массивы (с использованием квадратных скобок), что и приводит к ошибке "Array to string conversion", так как SQL не может работать с массивами.
Вам нужно присвоить значения переменным `$price` и `$sale` из `$_POST`, аналогично тому, как это сделано с остальными переменными. Вот исправленный код:
```php
$name = $_POST['name'];
$content = $_POST['content'];
$price = $_POST['price']; // Предполагая, что вы отправляете 'price' через POST
$sale = $_POST['sale']; // Предполагая, что вы отправляете 'sale' через POST
$thumb = $_POST['Thumbnail'];
$smallContent = $_POST['smallContent'];
$query = "INSERT INTO `orders` (`name`, `content`, `price`, `sale`, `image`, `smallContent`) VALUES ('$name', '$content', '$price', '$sale', '$thumb', '$smallContent')";
if (mysqli_query($link, $query)) {
echo "<h1 style='text-align: center'>Товар добавлен</h1>";
} else {
echo "<h1 style='text-align: center'>Ошибка добавления товара: " . mysqli_error($link) . "</h1>";
}
```
Также, важно помнить о безопасности: использование переменных напрямую в запросах SQL может привести к SQL-инъекциям. Для защиты от этого рекомендуется использовать подготовленные выражения (prepared statements). Вот пример:
```php
$stmt = $link->prepare("INSERT INTO `orders` (`name`, `content`, `price`, `sale`, `image`, `smallContent`) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("ssssss", $name, $content, $price, $sale, $thumb, $smallContent);
if ($stmt->execute()) {
echo "<h1 style='text-align: center'>Товар добавлен</h1>";
} else {
echo "<h1 style='text-align: center'>Ошибка добавления товара: " . $stmt->error . "</h1>";
}
$stmt->close();
```
Используйте этот подход, чтобы сделать вашу базу данных более безопасной и избежать возможных уязвимостей.