Ir para conteúdo

lsantgo

Members
  • Total de itens

    4
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre lsantgo

Informações Pessoais

  • Sexo
    Feminino
  • Localização
    Minas Gerais
  • Interesses
    PHP, Oracle, JavaScript, PL/SQL, C, Java.
  1. lsantgo

    [Tutorial] Gerar/Ler/Escanear QRcodes com PHP e Javascript

    Olá, parece bem completo, mas infelizmente não consigo testar pois o link com os arquivos está fora. Poderia disponibiliza-lo novamente? Obrigada :)
  2. lsantgo

    SELECT ... FOR UPDATE com PHP

    <?php include "config.php"; //arquivo de configuração //------------------------------------------------------------------------------------------------------// $query2 = "DECLARE v_consulta NUMBER; CURSOR cursore IS SELECT exemplo FROM tabela FOR UPDATE of exemplo; BEGIN OPEN cursore; FETCH cursore INTO v_consulta; UPDATE tabela SET exemplo = exemplo + 1; COMMIT; CLOSE cursore; END;"; $s2 = oci_parse($c, $query2); if (!$s2) { $m2 = oci_error($c); trigger_error('Could not parse statement: ' . $m['message'], E_USER_ERROR); } $r2 = oci_execute($s2); if (!$r2){ $m2 = oci_error($s2); trigger_error('Could not execute statement: ' . $m['message'], E_USER_ERROR); } $row = oci_fetch_array($s2, OCI_ASSOC + OCI_RETURN_NULLS); $final = $row['v_consulta']; echo $final; ?> Esse é meu código, eu gostaria de buscar o valor retornado pelo select que esta dentro do cursor, para armazenar em uma variável php.
  3. lsantgo

    SELECT ... FOR UPDATE com PHP

    Consegui resolver da seguinte maneira $query2 = "DECLARE CURSOR cursore IS SELECT proxnumorc FROM pcconsum FOR UPDATE of proxnumorc; BEGIN OPEN cursore; UPDATE pcconsum SET proxnumorc = proxnumorc + 1; COMMIT; CLOSE cursore; END;"; Fiz um cursor com um bloco PL/SQL e deu certo. Porém, preciso armazenar o resultado do select que esta dentro do cursor em uma variável php, e depois imprimir a variável. Entretanto, quando tento, me deparo com o seguinte erro: Warning: oci_fetch_array(): ORA-24374: define not done before fetch or execute and fetch in C:\xampp\htdocs\ProjectO\numorca.php on line 31 O retorno do cursor não é aceito. Alguem sabe como resolver isso?
  4. lsantgo

    SELECT ... FOR UPDATE com PHP

    Estou a dois dias tentando resolver esse problema, se alguém puder me ajudar eu agradeço de mais. Possuo a seguinte consulta: Ela serve para que eu possa captar o próximo numero disponível para orçamento e já fazer um update adicionando 1 unidade a esse numero antes que que a aplicação quando usada por outro usuário capte o mesmo numero que outro. A consulta funciona perfeitamente, o banco usado é oracle 11g. Porém não consigo aplicar isso na linguagem php, pois a query não aceita 2 consultas. Já tentei usar cursores utilizando de oci_new_cursor, porém sem exito. Alguns trechos de código tentei adaptar de exemplos desse site PHP oci_new_cursor Examples Se alguém puder me ajudar por favor. Já nem sei mais o que tentar Seguem abaixo 2 exemplos de códigos (um com cursor e outro sem) : <?php include "config.php"; //arquivo de configuração //------------------------------------------------------------------------------------------------------// $query2 = "BEGIN SELECT proxnum FROM orcamento FOR UPDATE of proxnum; UPDATE orcamento SET proxnum = proxnum + 1; end;"; $s2 = oci_parse($c, $query2); if (!$s2) { $m2 = oci_error($c); trigger_error('Could not parse statement: ' . $m['message'], E_USER_ERROR); } //prepara para a execução $refcur = oci_new_cursor($c); $r2 = oci_execute($s2); if (!$r2){ $m2 = oci_error($s2); trigger_error('Could not execute statement: ' . $m['message'], E_USER_ERROR); }// executa a consulta oci_execute($refcur); ?> <?php include "config.php"; //arquivo de configuração //------------------------------------------------------------------------------------------------------// $query2 = " SELECT proxnum FROM orcamento FOR UPDATE of proxnum; UPDATE orcamento SET proxnum = proxnum + 1; "; $s2 = oci_parse($c, $query2); if (!$s2) { $m2 = oci_error($c); trigger_error('Could not parse statement: ' . $m['message'], E_USER_ERROR); } //prepara para a execução $r2 = oci_execute($s2); if (!$r2){ $m2 = oci_error($s2); trigger_error('Could not execute statement: ' . $m['message'], E_USER_ERROR); }// executa a consulta ?>
×

Informação importante

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