Así es como literalmente lo he hecho:
Código PHP:
Ver originalheader("Content-type: image/png");
$cadena = $_POST["texto"];
$imagen = "imagen-" . mt_rand(1000, 10000) . ".jpg";
mysql_query(sprintf("INSERT INTO tabla (nombre, apellido, foto) VALUES ('%s', '%s', '%s')", $nombre, $apellidos, $imagen));
Y se guardan tanto los datos en la BD como la imagen en la carpeta del servidor y se muestra la imagen con el texto. El formulario es el mismo que puse de ejemplo en una de mis respuestas anteriores. Podrías probar imprimiendo la consulta para ver si se están agregando los datos correctamente, es decir, haz esto:
Código PHP:
Ver originalecho sprintf("INSERT INTO tabla (nombre, apellido, foto) VALUES ('%s', '%s', '%s')", $nombre, $apellidos, $imagen);
Coloca los datos que corresponden a los tuyos, luego, si ves que todo está en orden (con respecto a la consulta), cópiala y pégala en tu administrador de BD, por ejemplo,
phpMyadmin, así descartarás una posible falla en la consulta.
Saludos
Edito: Solo por curiosidad, ¿Estás colocando TUS datos?, es decir, el nombre de tu tabla y sus campos así como tus variables. Quizá esa sea la falla que estás teniendo.