Any time you see this:
... for the right syntax to use near...
The error is at the very beginning of what "near" is telling you. In this case it's the word desc
which is a reserved word in SQL (for ordering things in descending order). I recommend not using it as a column name (or any other reserved word), but if that's not possible then you'll just need to wrap it in back-ticks to indicate that it's an object name and not a keyword:
INSERT INTO empresas(usuario,name,`desc`,dir,pais,tel,fax,email,url,pic)...
It's often a good idea to wrap object names like this anyway, making queries more explicit. Though honestly you should take this a step further and use something like PDO for building your queries. At the very least, please be aware that your current code is highly vulnerable to SQL injection attacks and start reading this.