Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

twpesquisa

Oracle + PHP

Recommended Posts

Pessoal,

estou tentando fazer um serviço de NEWSLETTER onde os dados são capturados de uma base de dados ORACLE e depois enviado uma NEWS.

Gostaria de saber quem poderia me auxiliar nesse projeto ?

 

<?/* INICIO - CONEXÃO COM A BASE DE DADOS ORACLE */$tns_name	= "";	  //TNS NAMES$db			   = ""; // IP DO SERVIDOR$ora_user	  = "";			 //USUÁRIO$ora_senha   = "";		  //SENHA$ora_conecta = ocilogon($ora_user,$ora_senha,$tns_name);/* FIM - CONEXÃO COM A BASE DE DADOS ORACLE *//* INICIO - ESTRUTURA PARA A NEWSLETTER - ORACLE*/$query = "select a.nome, lower(a.email_emp)		  from sis.empresas a		  where sis.sfn_empresa_ativa(a.cod_emp,sysdate) = 'T' 		  and sis.sfn_empresa_faturavel(a.cod_emp,sysdate)= 'T'		  and   email_emp like '%@%'		  order by 2";//ANALISA$sql_parse = ociparse($ora_conecta,$query) or die("ERRO NA ANÁLISE DA CLÁUSULA SQL");//EXECUTAociexecute($sql_parse,OCI_DEFAULT); while(Ocifetch($sql_parse))	 {	  $to	  = ociresult($sql_parse,"email_emp");	  $de	  = "sistemas@policlinicacentral.com.br";	  $nome	= ociresult($sql_parse,"nome")	  $subject = "NEWSLETTER - FEV/07";	  $corpo   = 'Teste de envio!!!!';	}ocifreestatement($sql_parse); //LIBERA DA MEMÓRIAocilogoff($ora_conecta); //DESCONECTA DO ORACLE 	  $html = $corpo;	 	  $headers  = "MIME-Version: 1.0\r\n";	  $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";	  $headers .= "Content-Transfer-Encoding: 8bits\r\n";	  $headers .= "From: \"$de\"";	  $headers .= "Return-Path: <sistemas@policlinicacentral.com.br>\n";	  if (mail($to, $subject, $html, $headers))		 {		  echo 'email enviado para <a href=\"#\">'.$to.' </a><br><br>';		 }//if	  else		 { 		  echo "ocorreu um erro durante o envio do email.<br>";		 }//else	 }//while		  echo "<a href=\"/_area_teste/newsletter/index.php\">Voltar... </a>";	?>

Isso estaria correto ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só mais uma dúvida:Como faço o envio pausadamente ?Tipo de 30 em 30 segundos ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo!Mas no meu código onde implemento esse trecho ?Ah, como faço para verificar se foi enviado ou não, pois tentei envier e apareceu uma pagina em branco sem nada, será que deu erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas tenho a seguinte situação:Tenho dois ambientes:Um com estrutura que conecta na base de dados ORACLE e outro que conecta na base de dados MySQL.O do MySql funciona e o ORACLE não .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo, podes me ensinar com todos os outros , coloquei conforme anterior e nãop deu erro, so não sei realizar o debug no restante do codigo.Please !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

resolvi o problema...

 

O que me pareceu foi que o SELECT estaca com letras minusculas e após ter passado tudo para maiuscula funcionou...

 

Segue abaixo o código.

 

Abraços,

 

 

<?//conexão com o BANCO DE DADOS ORACLE$tns_name	= "";		  //TNS NAMES$db		  = "";   //IP DO SERVIDOR$ora_user	= "";					 //USUÁRIO$ora_senha   = "";				  //SENHA$ora_conecta = ocilogon($ora_user,$ora_senha,$tns_name);// contador de emails que servirá para a função sleep$cont = 0;//Verifica se conectou com o BANCO DE DADOSif(!$ora_conecta)  {   echo "ERRO !! Por favor, verifique se o usuário e a senha estão digitados corretamente!<br><br><br>";  }else  {   echo"Você esta conectado no Banco ORACLE!<br>";  }   // Query que seleciona os dados necessários// para o envio da Newsletter$query = "SELECT A.NOME as NOME, LOWER(A.EMAIL_EMP) as EMAIL_EMP			FROM SIS.EMPRESAS A		   WHERE A.COD_EMP IN (1,2,17)			 AND SIS.SFN_EMPRESA_ATIVA (A.COD_EMP, sysdate) = 'T'			 AND SIS.SFN_EMPRESA_FATURAVEL (A.COD_EMP, sysdate) = 'T'			 AND A.EMAIL_EMP LIKE '%@%'";//Analisa$sql_parse = ociparse($ora_conecta,$query) or die(ocierror());//Executaociexecute($sql_parse,OCI_DEFAULT) or die(ocierror());// Abertura do while de envio dos emails cadastradoswhile(Ocifetch($sql_parse))	 {	   $to	   = ociresult($sql_parse,"EMAIL_EMP");	   $de	   = "EMPRESA TESTE";	   $nome	 = ociresult($sql_parse,"NOME");	   $subject  = "NEWSLETTER-FEV/07";	   $corpo	= 'TESTE';	   $html	 = $corpo;		   $headers  = "MIME-Version: 1.0\r\n";	   $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";	   $headers .= "Content-Transfer-Encoding: 8bits\r\n";	   $headers .= "From: \"$de\"";//	   $headers .= "Return-Path: <teste@teste.com.br>\n";	   // função sleep	   // assim que a variável $cont, chegar em 300, 	   // o script irá ser atrasado em 500 segundos	   $cont = $cont + 1;	   if ($cont == 300)		  {		   flush();		   sleep (500);		   $cont = 0;		  }	   //Veriica se enviou os e-mails	   if (mail($to, $subject, $html, $headers))		  {		   echo "email enviado para <a href=\"#\">".$to." </a><br><br>";		  }	   else		  {		   echo "ocorreu um erro durante o envio do email.<br>";		  }	 }// fecha o while de envio dos emailsocifreestatement($sql_parse); //LIBERA DA MEMÓRIAocilogoff($ora_conecta); //DESCONECTA DO ORACLE?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.