Tienes que escapar del contenido de la imagen.
Hay diferentes formas de lograrlo:
1) Si la versión de PHP que está usando es menor que PHP 5.5, puede usar la función "mysql_real_escape_string".
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . mysql_real_escape_string($imagedata) ."');";
2) Codifique el contenido de la imagen usando la función "base64_encode", codificar el contenido en base64 aumentará el tamaño del archivo, pero es muy seguro de usar.
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . base64_encode($imagedata) ."');";
Recuerda decodificar el contenido con la función "base64_decode" cuando quieras leer o descargar el archivo.
3) Escape de las comillas simples y dobles usando la función "addslashes"
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . addslashes($imagedata) ."');";
Recuerde eliminar las barras cuando la imagen se lea o se descargue con la función "stripslashes".