Você tem que escapar do conteúdo da imagem.
Existem diferentes maneiras de conseguir isso:
1) Se a versão do PHP que você está usando for menor que o PHP 5.5, você pode usar a função "mysql_real_escape_string".
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . mysql_real_escape_string($imagedata) ."');";
2) Codifique o conteúdo da imagem usando a função "base64_encode", codificar o conteúdo para base64 aumentará o tamanho do arquivo, mas é muito seguro de usar.
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . base64_encode($imagedata) ."');";
Lembre-se de decodificar o conteúdo com a função "base64_decode" quando quiser ler ou baixar o arquivo.
3) Escape das aspas duplas e simples usando a função "addslashes"
$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . addslashes($imagedata) ."');";
Lembre-se de remover as barras quando a imagem for lida ou baixada com a função "stripslashes".