I've wanted to expand my game development into the realm of multiplayer, however I don't have the funds for a proper server that has sockets or the time to develop an understanding of how they work and how to use them properly and securely.
What I am however fully capable of is sending and receiving data between Flash and MySQL via PHP in various formats.
If I were to create a turn based game, would polling a MySQL database in this fashion (via PHP) be suitable? At the moment I am thinking along these lines:
Will this be far too slow or unreliable? Or are there other issues that can be foreseen such as the result of both players polling the database at the same time (not sure if that matters)?
Instead of polling, I'd suggest that you look into a technology allowing to push data from the server to the Flash client. The two most common options are either socket connections, or using the Real Time Messaging Protocol, see this question for more details. That's the default approach to building real time games using Flash.
For PHP, there are a number of open source products or frameworks with support for the RTMP based AMF protocol:
I've personally used Zend Framework AMF with good results, heard good things about WebORB as well. I have not used the other AMF libraries.
Regarding your specific questions: I'd not store the information in a database as JSON or XML, since you want to query the data. It's far more efficient to store the data as native SQL data.
Here is a short example showing you how to use Zend Framework AMF to give you an idea how it would work.