PessoALL,
Me surgiu uma dúvida aqui: como fazer para pegar o conteúdo de um campo BLOB, jogar em uma variável e depois gravar em outro campo BLOB de outra tabela? Isso tudo em uma rotina do SC.
PessoALL,
Me surgiu uma dúvida aqui: como fazer para pegar o conteúdo de um campo BLOB, jogar em uma variável e depois gravar em outro campo BLOB de outra tabela? Isso tudo em uma rotina do SC.
Da mesma forma que faria com campo texto
Grande Haroldo, blz?
Pois comigo deu erro… vou postar a minha rotina:
$sql_Questao = "SELECT idtab_questoes,questao,figura,resp1,resp2,resp3,resp4"
." FROM tab_questoes WHERE idtab_questoes = ".$id_questao_aleatoria
." AND id_disciplinas_fk = ".[disciplina];
sc_lookup(data_Questao,$sql_Questao);
if (!empty({data_questao}))
{
$idn_questao = {data_Questao[0][0]};
$pergunta = {data_Questao[0][1]};
$figuraquestao = {data_Questao[0][2]}; // Aqui é o campo BLOB
$resposta1 = {data_Questao[0][3]};
$resposta2 = {data_Questao[0][4]};
$resposta3 = {data_Questao[0][5]};
$resposta4 = {data_Questao[0][6]};
$sql_inserir = "INSERT INTO tab_provas SET
cod_disciplina_fk2 = ".[disciplina]
.", id_questao = ".$id_questao_aleatoria
.", questao = '".$pergunta."'
, figuraprova = '".$figuraquestao."'
, id_provas_pai_fk = ".[codigo]
.", respaluno1 = '".$resposta1."'
, respaluno2 = '".$resposta2."'
, respaluno3 = '".$resposta3."'
, respaluno4 = '".$resposta4."'"
sc_exec_sql($sql_inserir);
}
Executa insert baseando no select direto us a sc_exec_sql.
No caso do seu codigo passe a funcao para remover caracteres que atrapalham no seu codigo, veja:
http://php.net/manual/pt_BR/function.addslashes.php
Haroldo,
Obrigado pela resposta. Só fiquei na dúvida pelo seguinte: se eu retirar a linha:
, figuraprova = ‘".$figuraquestao."’
Funciona normal. A função AddSlashes() então funcionaria para o campo BLOB?
eu faria numa instrução sql unica, mas sim utilize:
, figuraprova = ‘".AddSlashes($figuraquestao)."’
Meu amigo Haroldo,
Infelizmente o AddSlashes não funcionou. Agora, como fazer em uma instrução sql única? (acordei meio lerdo hoje rsrs)
o que vc quer dizer que não funcionou? da erro?
INSERT INTO TABELA (COLUNAS) VALUES (SELECT COLUNAS FROM TABELA)
Sim, deu erro. O mesmo erro que estava dando antes de colocar o AddSlashes.
Eu te disse que estou meio lerdo hoje… nem me lembrava da forma do INSERT definindo logo as colunas e os valores rsrs.
Vou mudar o SQL aqui e reporto já o resultado.
Brother,
Coloquei assim:
sc_exec_sql("INSERT INTO tab_provas (cod_disciplina_fk2,id_questao,questao,figuraprova,id_provas_pai_fk,respaluno1,respaluno2,respaluno3,respaluno4)
VALUES ([disciplina],$id_questao_aleatoria,$pergunta,$figuraquestao,[codigo],$resposta1,$resposta2,$resposta3,$resposta4)");
mas deu o mesmo erro que deu anteriormente.
Kleyber tenta uma instrução unica com falou Harold.
Por exemplo
INSERT INTO tab_provas (cod_disciplina_fk2,id_questao,questao,figuraprova,id_provas_pai_fk,respaluno1,respaluno2,respaluno3,respaluno4)
Select id_disciplinas_fk, idtab_questoes,questao,figura,resp1,resp2,resp3,resp4
FROM tab_questoes WHERE idtab_questoes = $id_questao_aleatoria
AND id_disciplinas_fk = [disciplina]
Att.
MikeC,
Valeu pelo exemplo. Está quase lá, não fosse pelo campo id_provas_pai que não existe na tabela tab_questões e sim em outra tabela.
Consegui!!! Bastou colocar a variável [codigo] e ficou assim:
sc_exec_sql("INSERT INTO tab_provas (cod_disciplina_fk2,id_questao,questao,figuraprova,id_provas_pai_fk,respaluno1,respaluno2,respaluno3,respaluno4)
Select id_disciplinas_fk, idtab_questoes,questao,figura,[codigo],resp1,resp2,resp3,resp4
FROM tab_questoes WHERE idtab_questoes = $id_questao_aleatoria
AND id_disciplinas_fk = [disciplina]");
Valeu MikeC e Haroldo.