Like brad stated you would probably be better off using explode() instead of preg_split(), and it appears that by using the value of content of a textarea that you are depending on others to properly enter in to a textare with no label and a Submit Query button the values , in proper order what is required by your database. It look like 5 fields plus one that you are inserting a blank value into for some reason or the other.
Your form should look more like this to get positive results.
<form method="POST">
Co-ordinates: <input type = "text" name="coords" />
Name: <input type = "text" name="name" />
Owner: <input type = "text" name="owner" />
Defense<input type = "text" name="defense" />
Comments:<br />
<textarea name="comments" rows="2" cols="20" ></textarea>
<br><input type="Submit">
</form>
then you can change
$coords = $d1[0];
$name = $d1[1];
$owner = $d1[2];
$defense = $d1[3];
$comments = $d1[4];
to
$coords = $_POST['coords'];
$name = $_POST['name'];
$owner = $_POST['owner'];
$defense = $_POST['defense'];
$comments = $_POST['comments'];
Then try that and see what happens.