Vous devez échapper le contenu de l'image.
Il existe différentes manières d'y parvenir :
1) Si la version de PHP que vous utilisez est mineure par rapport à PHP 5.5, vous pouvez utiliser la fonction "mysql_real_escape_string".
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . mysql_real_escape_string($imagedata) ."');";
2) Encodez le contenu de l'image à l'aide de la fonction "base64_encode", l'encodage du contenu en base64 va augmenter la taille du fichier, mais est très sûr à utiliser.
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . base64_encode($imagedata) ."');";
Pensez à décoder le contenu avec la fonction "base64_decode" lorsque vous souhaitez lire ou télécharger le fichier.
3) Échappez aux guillemets doubles et simples à l'aide de la fonction "addslashes"
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . addslashes($imagedata) ."');";
Pensez à supprimer les slashs lors de la lecture ou du téléchargement de l'image avec la fonction "stripslashes".