Série da semana: Primeiros passos no React

Veja mais

upload Imagem (PHP + SQL SERVER)

18/11/2015

2

PHP

Srs (a). bom dia.

Estou com um problema em um determinado script. No upload de fotos, faço da seguinte forma.

TABELA DO BD:

CODARQUIVO int
CODCOLIGADA int
CODLOCAL int
CODATENDIMENTO int
CODCOLIGADAATENDENTE int
CODATENDENTE int
NOMEARQUIVO varchar
DETALHESARQUIVO varchar
ARQUIVO image
TAMANHOARQUIVO RMDVALOR4
CODCOLIGADAATENDATUAL int
CODATENDENTEATUAL int
DATAULTIMAALTERACAO datetime
TIPOALTERACAO varchar
RECCREATEDBY varchar
RECCREATEDON datetime
RECMODIFIEDBY varchar
RECMODIFIEDON datetime



TRANSFORMAÇÃO DO CAMPO $_FILES:

$foto = $_FILES['ffFoto'];
$nome = $foto['name'];
$tipo = $foto['type'];
$tamanho = $foto['size'];


$conteudo = file_get_contents($foto['tmp_name']);				
$data = unpack("H*hex", $conteudo); 		
$texto = "0x".$data['hex']; 	



SCRIPT DE INSERT:
public function cadastroArqAtendimento($param1,$param2,$param3,$param4,$param5,$param6,$param7,$param8,$param9){
			$start = $this->conexao->prepare("			 
				INSERT INTO HATENDIMENTOARQUIVOSANEXOS
           	(CODARQUIVO,CODCOLIGADA,CODLOCAL,CODATENDIMENTO,CODCOLIGADAATENDENTE,CODATENDENTE,NOMEARQUIVO,DETALHESARQUIVO,ARQUIVO,TAMANHOARQUIVO,
           	CODCOLIGADAATENDATUAL,CODATENDENTEATUAL,DATAULTIMAALTERACAO,TIPOALTERACAO,RECCREATEDBY,RECCREATEDON,RECMODIFIEDBY,RECMODIFIEDON) 
     		VALUES (?, 1, ?, ?, 1, ?, ?, 'ARQUIVO ANEXO', ?, ?, 1, ?, GETDATE(), 'Adicionado', ?, GETDATE(), null, null)		
			");		
			
			$start->bindValue(1,$param1);			
			$start->bindValue(2,$param2);			
			$start->bindValue(3,$param3);			
			$start->bindValue(4,$param4);			
			$start->bindValue(5,$param5);			
			$start->bindValue(6,$param6,PDO::PARAM_LOB);
			$start->bindValue(7,$param7);			
			$start->bindValue(8,$param8);			
			$start->bindValue(9,$param9);				
			
			
			$start->execute();
			return $start->errorCode();
		}






O PROBLEMA É QUE NÃO INSERTA NO BANCO SEMPRE ME RETORNA O ERRO NUM TRACE ASSIM :

Operand type clash: text is incompatible with image php;


SE ALGUÉM PODER ME AJUDAR, SERÁ DE GRANDE VALIA.

AGRADECIDO.
Responder

Posts

18/11/2015

Jothaz

Opinar em um SQl deste tamnahho sem entender o cenário ou debugar é osso.

Qual o campo da tabela recebe o arquivo?

Você tem certeza que o comadno:

$start->bindValue(6,$param6,PDO::PARAM_LOB);


Esta correto. O campo imagem é o param 6? Não seria o 9?
Responder

18/11/2015

Brunno Sena

Opinar em um SQl deste tamnahho sem entender o cenário ou debugar é osso.

Qual o campo da tabela recebe o arquivo?

Você tem certeza que o comadno:

$start->bindValue(6,$param6,PDO::PARAM_LOB);


Esta correto. O campo imagem é o param 6? Não seria o 9?




Obrigado, pela resposta, mas o campo de imagem, é o CAMPO ARQUIVO, NO INSERT. OS CAMPOS MANUALMENTE COLOCADOS, NÃO SÃO CONTADOS COMO PARAMETROS. SOMENTE OS QUE ESTÃO COM O "?". OU SEJA, CONTADO, ELE ME RETORNA O PARAMETRO 6.
Responder

18/11/2015

Jothaz

Gravar imagem em bd é chato em qualquer linguagem.

Eu faria um teste com dabela com somente um id e o campo imagem para confirmar que o processo de gravação da imagem esta ok.

E depois se funcionasse, gravaria todos os campo.

Sei que trabalhoso e cansativo, mas não existe almoço gratis. kkkkk
Responder

19/11/2015

Brunno Sena

Gravar imagem em bd é chato em qualquer linguagem.

Eu faria um teste com dabela com somente um id e o campo imagem para confirmar que o processo de gravação da imagem esta ok.

E depois se funcionasse, gravaria todos os campo.

Sei que trabalhoso e cansativo, mas não existe almoço gratis. kkkkk



Esse teste foi feito, sem passar parametros, colocando os valores manualmente, e deu certo, acredito que o problema esteja na verdade em como passar o parametro, e é justamente isso que quero saber como passar parametros deste tipo.

Agradecido, mais alguém ???
Responder