Вам необходимо заключить интерполированные заполнители в фигурные скобки, например: $row['my_name']
-> {$row['my_name']}
:
$sql = "INSERT INTO table1 (my_name, hobby, other) VALUES ({$row['my_name']}, {$row['hobby']}, {$row['other']})";
Это касается только синтаксиса PHP.Синтаксическая ошибка SQL, которую вы получаете сейчас, является следующей проблемой.Самое простое, что можно «исправить», это включить дополнительные апострофы вокруг заполнителей, то есть
$sql = "INSERT INTO table1 (my_name, hobby, other) VALUES ('{$row['my_name']}', '{$row['hobby']}', '{$row['other']}')";
НО ЭТО НЕ ДЕЛАЕТ, , поскольку этот код является примером классического Уязвимость SQL-инъекции .
Попробуйте вместо этого использовать подготовленный оператор - это полностью исключает интерполяцию строк в PHP.