Porque tanto no tutorial quanto na resolução desse exercício na linha $query = "update produtos set nome = '{$nome}', preco = {$preco}, descricao = {$descricao}, $categoria_id = {$categoria_id}, usado = {$usado} where id = '{$id}'";
o {$id}
depois do where
é passado entre aspas, se ele é um integer? O uso ou não de aspas tem a possibilidade de criar algum conflito?