Me imagino que debemos ejecutar el código mentalmente para saber si mysql_error() devuelve algo, ¿cierto?
Además estás subiendo archivos de una manera bastante errada, ¿para qué es el opendir() que usas?
No tiene sentido, además debes mover el archivo con move_uploaded_fie() y no copy().
Consulta el manual:
http://php.net/manual/es/features.file-upload.php