VALUES ({$mainname} , {$login} , {$email}, {$index} , {$charset}
дословно засылая строки т.е - VALUES (string , string , string, string , string)
вы получаете ошибку т.к строки надо обрамлять в кавычки т.е хотя бы так:
$connect->query("INSERT INTO vhosts (mainname,login,email,index,charset) VALUES ('{$mainname}', '{$login}', '{$email}', '{$index}' , '{$charset}')");
(допустим index - строка, в коде у вас наверняка нет явной типизации, если вдруг есть то можно {$index} не обрамлять)
не говоря уже о потенциальных sql инъекциях :)