UPDATE no oracle com pdo

8 views
Skip to first unread message

rogerio Lamarques

unread,
Oct 1, 2015, 10:32:51 AM10/1/15
to PHPRS
Galera estou com a seguinte situação
  • Servidor IIS
  • PHP PDO


Código:


$dados = array();
$dadosUpdate = array();
$id_prospect = intval($params['id_prospect']);
if (isset($params['id_consultor'])) {
$dados['id_consultor'] = intval($params['id_consultor']);
}
if (isset($params['id_pessoa'])){
$dados['id_pessoa'] = intval($params['id_pessoa']);
}
if(isset($params['nome'])) {
$dados['nome'] = "'" . $params['nome'] . "'";
}
if(isset($params['telefone'])){
$dados['telefone'] = "'" . $params['telefone'] . "'";
}
if(isset($params['observacoes'])) {
$dados['observacoes'] = "'" . (empty($params['observacoes'])) ? "-" : $params['observacoes'] . "'";
}
if(isset($params['ativo'])) {
$dados['ativo'] = intval($params['ativo']);
}
$sql= "UPDATE PROSPECT SET ";
foreach($dados as $key=>$val) {
$dadosUpdate[] = strtoupper($key) . " = " . $val;
}
$sql .= (implode(', ', $dadosUpdate));
$sql .= " WHERE ID_PROSPECT = {$id_prospect}";
$consulta = $pdo->prepare($sql);
$consulta->execute();
$retorno = array('resultado' => 'ok');
$webservice->setReturn($retorno);


ao executar esse código o iis retorna um erro

500 - Internal server error.

nos logs observei que se trata de um timeout no fast cgi.


pergunta: O que será que pode ser isso?

Daniel Archer

unread,
Oct 1, 2015, 10:53:51 AM10/1/15
to ph...@googlegroups.com
Lembrando o método "pdo->query()" é a mesma coisa que  "prepare() + execute()";
Mas nesse código não consigo identificar o motivo do erro.

--
Você recebeu essa mensagem porque está inscrito no grupo "PHPRS" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para phprs+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Daniel Archer
Analista e Desenvolvedor de Sistemas Web
(51) 9672.3064

Daniel Archer

unread,
Oct 1, 2015, 10:58:29 AM10/1/15
to ph...@googlegroups.com
Além disso.
Aquele intval poderia ser substituído por 
$id_prospect = filter_var( $params['id_prospect'] , FILTER_SANITIZE_NUMBER_INT);

Daniel Archer

unread,
Oct 1, 2015, 11:02:27 AM10/1/15
to ph...@googlegroups.com
Além disso.
Aquele intval poderia ser substituído por 
$id_prospect = filter_var( $params['id_prospect'] , FILTER_SANITIZE_NUMBER_INT);
Em 1 de outubro de 2015 11:53, Daniel Archer <con...@danielcramer.com.br> escreveu:

rogerio Lamarques

unread,
Oct 1, 2015, 4:41:48 PM10/1/15
to PHPRS
É estranho mas deve ser alguma coisa com a PDO e o oracle. Pois resolvi criando uma procedure do UPDATE no oracle.
Nunca havia acontecido, porém, nunca tinha feito algo em php e oracle no iis.

Daniel Archer
o motivo de não ter usado filter_var é que depende o cliente a versão do php não reconhecia tais funções.
Reply all
Reply to author
Forward
0 new messages