в том что это бессмысленный набор случайных огрызков, надерганных из интернета
А должно быть так:
- соединяемся
правильно
- запрос выполняем
один
- переменные передаем в него через
подстановки, а не напрямую
- идентификатор получаем
правильно, а не через одно место автогеном
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn=new mysqli("localhost","?","?","?");
$conn->set_charset('utf8mb4');
$sql="INSERT INTO products(name,href,price,image_href) VALUES (?,?,?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssss", $name,$href,$price,$img);
$stmt->execute();
echo $conn->insert_id;