Re: [PHP-DB] Multiple Inserts with mySQL

2002-11-14 Thread Anthony
hmm, I guess that would work.  There is no way to have mySQL check for 
integrity for me is there?  I read in a SQL book a while ago about 
wrapping multiple inserts in a select statement, that way if any part of 
the statement failed the whole thing would be rolled back.  From my 
research though, it doesn't look like mySQL supports this.  Am I right 
here?  So far it looks like your idea could be the most reliable 
suggestions I've gotten, so I'll start working on that for now.  Thanks.

- Anthony

Peter Beckman wrote:
Try this:

$stack is an array of hashes:

$stack[0] = array(0=tablename, 1=insertid());

For each insert you do, push an anonymous array on $stack which includes
the tablename and insertid of the insert.

Then as you continue your inserts, if any of them fail, call a function
which takes that array $stack, and iterate through it, deleting the rows
you just inserted. (see mysql_insert_id() function to get the insert ID)

If none of them do fail, then you are in the clear.  Either unset $stack or
ignore it.

Peter

On Wed, 13 Nov 2002, Anthony wrote:



I have to drop a lot of data into mySQL from PHP.  It will go into quite
a few different tables.  How can I maintain integrity of the entire
insert?  I need to do about a dozen inserts on four tables and I need to
insure that all the inserts are successful or that none of them get
done.  I'm sort of new at this, so please help me out.  Thanks.

- Anthony


--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




---
Peter BeckmanSystems Engineer, Fairfax Cable Access Corporation
[EMAIL PROTECTED] http://www.purplecow.com/
---




--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




Re: [PHP-DB] Multiple Inserts with mySQL

2002-11-14 Thread Anthony
hmm, I guess that would work.  There is no way to have mySQL check for 
integrity for me is there?  I read in a SQL book a while ago about 
wrapping multiple inserts in a select statement, that way if any part of 
the statement failed the whole thing would be rolled back.  From my 
research though, it doesn't look like mySQL supports this.  Am I right 
here?  So far it looks like your idea could be the most reliable 
suggestions I've gotten, so I'll start working on that for now.  Thanks.

- Anthony

Peter Beckman wrote:
Try this:

$stack is an array of hashes:

$stack[0] = array(0=tablename, 1=insertid());

For each insert you do, push an anonymous array on $stack which includes
the tablename and insertid of the insert.

Then as you continue your inserts, if any of them fail, call a function
which takes that array $stack, and iterate through it, deleting the rows
you just inserted. (see mysql_insert_id() function to get the insert ID)

If none of them do fail, then you are in the clear.  Either unset $stack or
ignore it.

Peter

On Wed, 13 Nov 2002, Anthony wrote:



I have to drop a lot of data into mySQL from PHP.  It will go into quite
a few different tables.  How can I maintain integrity of the entire
insert?  I need to do about a dozen inserts on four tables and I need to
insure that all the inserts are successful or that none of them get
done.  I'm sort of new at this, so please help me out.  Thanks.

- Anthony


--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




---
Peter BeckmanSystems Engineer, Fairfax Cable Access Corporation
[EMAIL PROTECTED] http://www.purplecow.com/
---




--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




Re: [PHP-DB] Multiple Inserts with mySQL

2002-11-14 Thread Adam Voigt
10 Seconds searching in the MySQL Manual:

http://www.mysql.com/doc/en/ANSI_diff_Transactions.html

You have to use InnoDB tables, but this will work.

On Thu, 2002-11-14 at 11:26, Anthony wrote:
 hmm, I guess that would work.  There is no way to have mySQL check for 
 integrity for me is there?  I read in a SQL book a while ago about 
 wrapping multiple inserts in a select statement, that way if any part of 
 the statement failed the whole thing would be rolled back.  From my 
 research though, it doesn't look like mySQL supports this.  Am I right 
 here?  So far it looks like your idea could be the most reliable 
 suggestions I've gotten, so I'll start working on that for now.  Thanks.
 
 - Anthony
 
 Peter Beckman wrote:
  Try this:
  
  $stack is an array of hashes:
  
  $stack[0] = array(0=tablename, 1=insertid());
  
  For each insert you do, push an anonymous array on $stack which includes
  the tablename and insertid of the insert.
  
  Then as you continue your inserts, if any of them fail, call a function
  which takes that array $stack, and iterate through it, deleting the rows
  you just inserted. (see mysql_insert_id() function to get the insert ID)
  
  If none of them do fail, then you are in the clear.  Either unset $stack or
  ignore it.
  
  Peter
  
  On Wed, 13 Nov 2002, Anthony wrote:
  
  
 I have to drop a lot of data into mySQL from PHP.  It will go into quite
 a few different tables.  How can I maintain integrity of the entire
 insert?  I need to do about a dozen inserts on four tables and I need to
 insure that all the inserts are successful or that none of them get
 done.  I'm sort of new at this, so please help me out.  Thanks.
 
 - Anthony
 
 
 --
 PHP Database Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 
  
  
  ---
  Peter BeckmanSystems Engineer, Fairfax Cable Access Corporation
  [EMAIL PROTECTED] http://www.purplecow.com/
  ---
  
 
 
 -- 
 PHP Database Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 
-- 
Adam Voigt ([EMAIL PROTECTED])
The Cryptocomm Group
My GPG Key: http://64.238.252.49:8080/adam_at_cryptocomm.asc



signature.asc
Description: This is a digitally signed message part


Re: [PHP-DB] Multiple Inserts with mySQL

2002-11-13 Thread Peter Beckman
Try this:

$stack is an array of hashes:

$stack[0] = array(0=tablename, 1=insertid());

For each insert you do, push an anonymous array on $stack which includes
the tablename and insertid of the insert.

Then as you continue your inserts, if any of them fail, call a function
which takes that array $stack, and iterate through it, deleting the rows
you just inserted. (see mysql_insert_id() function to get the insert ID)

If none of them do fail, then you are in the clear.  Either unset $stack or
ignore it.

Peter

On Wed, 13 Nov 2002, Anthony wrote:

 I have to drop a lot of data into mySQL from PHP.  It will go into quite
 a few different tables.  How can I maintain integrity of the entire
 insert?  I need to do about a dozen inserts on four tables and I need to
 insure that all the inserts are successful or that none of them get
 done.  I'm sort of new at this, so please help me out.  Thanks.

 - Anthony


 --
 PHP Database Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php


---
Peter BeckmanSystems Engineer, Fairfax Cable Access Corporation
[EMAIL PROTECTED] http://www.purplecow.com/
---


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php