Jump to content


Photo

Transaction + Mysql + Php


  • Faça o login para participar
4 replies to this topic

#1 Sh4d0w

Sh4d0w

    Turista

  • Usuários
  • 28 posts
  • Sexo:Masculino

Posted 28/11/2006, 15:42

Ola pessoa, estou com um problema, eu preciso fazer um select no meu banco logo depois de um insert e para q o select nao me retorne valor errado preciso usar transaction mas nao consegui encontrar nenhuma referencia sobre como se fazer isto utilizando PHP+MySQL. Isto e possivel? eu ja pesquisei no manual do mysql e la encontrei q o mysql tem suporte para tranaction (start transaction, commit, rollback) porem nao encontrei nenhuma referencia de como utilizar estes comandos no PHP!!

Se puderem me ajudar fico agradecido!
Obrigado

ps: se o topico estiver no local errado peço desculpas!

#2 Fr0ZeN

Fr0ZeN

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 28/11/2006, 16:22

procure pela ferrramenta ADODB.
Ela tem suporte à transaction,e creio eu, dá suporte ao mysql.
PS: MySql nao trabalha muito bem com transaction. Até onde eu estava informado, rs.

#3 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 28/11/2006, 17:44

A extensão MySQLi tem métodos para isso. (PHP5)
http://www.php.net/m...-autocommit.php
http://www.php.net/mysqli-commit
http://www.php.net/m...li-rollback.php

Já pela antiga extensão MySQL você deve executar as instruções na mysql_query() mesmo.

Exemplo: http://www.php.net/m...query.php#37870

Edição feita por: Eclesiastes, 28/11/2006, 17:45.

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#4 Sh4d0w

Sh4d0w

    Turista

  • Usuários
  • 28 posts
  • Sexo:Masculino

Posted 29/11/2006, 12:37

Estou olhando esses links mas nao consegui intender muito bem como funcionaria!


O meu problema e o seguinte: preciso fazer um insert no banco de dados e logo depois peciso fazer um select pegando para pegar o codigo (auto increment) referente ao registro que acabou de ser cadastrado.
e para que nao aconteça do select me trazer o codigo errado preciso inciciar a transacao.

ja tentei fazer da seguinte maneira:

mysql_query("START TRANSACTION",$con);
mysql_query("insert....",$con);
mysql_query("select max(codigo) as codigo from tabela");
mysql_query("COMMIT",$con);


mais ou menos isso. Mas aparentemente nao esta funcionando!
o que estou fazendo de errado!?

obrigado!

#5 Rudolfo

Rudolfo

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 14/09/2009, 21:02

Estou olhando esses links mas nao consegui intender muito bem como funcionaria!


O meu problema e o seguinte: preciso fazer um insert no banco de dados e logo depois peciso fazer um select pegando para pegar o codigo (auto increment) referente ao registro que acabou de ser cadastrado.
e para que nao aconteça do select me trazer o codigo errado preciso inciciar a transacao.

ja tentei fazer da seguinte maneira:

mysql_query("START TRANSACTION",$con);
mysql_query("insert....",$con);
mysql_query("select max(codigo) as codigo from tabela");
mysql_query("COMMIT",$con);


mais ou menos isso. Mas aparentemente nao esta funcionando!
o que estou fazendo de errado!?

obrigado!


use o comando mysql_insert_id();

exemplo: $cod_gravada = mysql_insert_id();

esse comando o campo indice (no seu caso codigo) da consulta realizada.

Espero que ajude.
Abracos




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq