Baderous
Banido
Quero inserir ficheiros numa base de dados. Para isso, quero enviar para uma tabela "blobs" porções do ficheiro que são armazenadas consecutivamente na tabela, sendo guardado um identificador (id_blob) que me permite identificar as porções de um mesmo ficheiro. Assim, tenho a seguinte tabela:
# blobs
- index_blob INT(10) (PK)
- id_blob INT(10)
- blob MEDIUMBLOB
Defini uma constante que vai indicar o tamanho de bytes armazenado então em cada linha (as tais porções do ficheiro). Depois, vou lendo do ficheiro essa quantidade de bytes até encontrar o end-of-file, e vou armazenando na tabela:
Apesar de me parecer que a query está certa, isto não funciona. Já testei o $id_ficheiro, o fread, o MAX_SQL, o $data e todos estão bem, não percebo :/
# blobs
- index_blob INT(10) (PK)
- id_blob INT(10)
- blob MEDIUMBLOB
Defini uma constante que vai indicar o tamanho de bytes armazenado então em cada linha (as tais porções do ficheiro). Depois, vou lendo do ficheiro essa quantidade de bytes até encontrar o end-of-file, e vou armazenando na tabela:
Código:
define("MAX_SQL",40000);
$fp = fopen($tmpName, 'rb') or die( "Impossível abrir ficheiro!" );
$id_ficheiro = mysql_insert_id();
while (!feof($fp)) {
$data = base64_encode(fread($fp,MAX_SQL));
$query = "INSERT INTO blobs (id_blob, blob) VALUES ('$id_ficheiro',\"".$data."\")";
$result = mysql_query($query) or die ('aqui');
}