Re: What if the user closes the browser while INSERT INTO MySQL? (PHP/MySQL)

2010-04-17 Thread Antonio PHP
Well... just summarizing my thread here.

I tested this today.

As Carsten mentioned...

Without the function 'ignore_user_abort(true);', when the browser is
closed the script will stop at some point (if there's output ('echo etc') of
certain number (1,000s) of characters remaining.).

Many Thanks to Carsten!!


On Fri, Apr 16, 2010 at 9:33 PM, Carsten Pedersen cars...@bitbybit.dkwrote:


 On Fri, 16 Apr 2010 11:44:42 +0200, Jørn Dahl-Stamnes
 sq...@dahl-stamnes.net wrote:

  The server does not know if the browser is closed or not (or if the
  network
  connection is losted). It will continue to execute the code until
  finnished.

 Not quite true. If it decides to flush its output buffer and notices that
 there's no-one around to receive the output, the process may well be
 terminated.

 As long as you do not echo(), print() or flush() to a closed connection,
 you're probably going to be fine.

 / Carsten

 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/mysql?unsub=php.anto...@gmail.com




What if the user closes the browser while INSERT INTO MySQL? (PHP/MySQL)

2010-04-16 Thread Antonio PHP
This maybe a newbie question.

Consider the following concept,

~/index.php

#1. Fetch data from an external webpage using PHP Curl;
#2. Preg_match/Prepare Data to INSERT from local MySQL; - this may take a
few secs
#3. While Loop { INSERT data (from #2) into local MySQL } - this may take
only mili secs.

Suppose this code is run by a random user (say, my website visitor), and
he/she closes the browser while the code was running. The real problem is
when the browser is closed while #3 is executing. Because only portion of
data is inserted, ~/index.php, and it doesn't know if it needs to visit the
site again (i.e. repeat from #1 - over visiting the same webpage /
possibility of inaccurate data in local MySQL).

Has anyone come across with a similar problem? Do I need to use other
programming languages like C to execute the code from #2 in order not
to depend upon users' browser status?

Another general question : Is there a way to make sure all the data is
INSERTED in a while loop once it's triggered?

many thanks in advance,

- Anton


Re: Now() : SQL syntax error. But why?

2009-04-30 Thread Antonio PHP
Thanks, Scott.

I thought I couldn't have missed ','(comma) before. But today somehow it
works... ;;
I wasted hours figuring this out, but you saved me!

Maybe I'm still a complete newbie!

Thanks, again. Have a great day. :)



On Thu, Apr 30, 2009 at 12:52 PM, Scott Haneda talkli...@newgeo.com wrote:


 On Apr 29, 2009, at 11:29 AM, Antonio PHP wrote:

 This is MySQL data structure. - I underlined where it causes the error
 message. (datetime)
 `id_Company` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
 `Name` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
 `Revenue` mediumint(6) NOT NULL,
 `Company_Size` mediumint(6) NOT NULL,
 `Ownership` tinyint(1) NOT NULL,
 `Homepage` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT
 NULL,
 `Job_Source` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT
 NULL,
 `Updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 *`Created` datetime NOT NULL,
 *PRIMARY KEY (`id_Company`),
 KEY `Ownership` (`Ownership`)
 )
 ENGINE=InnoDB  DEFAULT CHARSET=utf8
 FOREIGN KEY (`Ownership`) REFERENCES `ownership` (`id_Ownership`) ON
 DELETE
 CASCADE ON UPDATE CASCADE;


 Next time can you include unmodified SQL so it is a copy and paste for me,
 rather than debugging what changes you made that are causing error.

 Here is php script -
 $sql = INSERT INTO company SET
 Name='$Name',
 Revenue='$Revenue',
 Company_Size='$Company_Size',
 Ownership='$Ownership',
 Homepage='$Homepage',
 Job_Source='$Job_Source'
 *Created=NOW() // if I remove this line it works fine.
 *;
 mysql_query ($sql) or die (mysql_error());


 Same here, as I am not sure your edits are just edits, or the lack of a
 comma after the job source variable is the issue.

 This works on my end:

 $Name = 'Tom';
 $Revenue  = '100';
 $Company_Size = '500';
 $Ownership= 'partner';
 $Homepage = 'example.com';
 $Job_Source   = 'friend';


 $sql = INSERT INTO mailing SET
 Name='$Name',
 Revenue='$Revenue',
 Company_Size='$Company_Size',
 Ownership='$Ownership',
 Homepage='$Homepage',
 Job_Source='$Job_Source',
 Created=NOW();

 echo $sql;

 mysql_query ($sql) or die (mysql_error());

  --
 Scott * If you contact me off list replace talklists@ with scott@ *




Re: Now() : SQL syntax error. But why?

2009-04-29 Thread Antonio PHP
Thanks. NOW() and php date(); work for my newly created test tables, but it
doesn't work for my working table. I can't insert date, time or now()
into my old table (which is as below).

For now, I'm using MySQL auto timestamp ('Updated' field), but I need to
insert date when the data was created!

Why is this? Please help me. (I'm using the newest versions of PHP and
MySQL)

This is MySQL data structure. - I underlined where it causes the error
message. (datetime)
`id_Company` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`Name` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
`Revenue` mediumint(6) NOT NULL,
`Company_Size` mediumint(6) NOT NULL,
`Ownership` tinyint(1) NOT NULL,
`Homepage` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`Job_Source` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT
NULL,
`Updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
*`Created` datetime NOT NULL,
*PRIMARY KEY (`id_Company`),
KEY `Ownership` (`Ownership`)
)
ENGINE=InnoDB  DEFAULT CHARSET=utf8
FOREIGN KEY (`Ownership`) REFERENCES `ownership` (`id_Ownership`) ON DELETE
CASCADE ON UPDATE CASCADE;

Here is php script -
$sql = INSERT INTO company SET
Name='$Name',
Revenue='$Revenue',
Company_Size='$Company_Size',
Ownership='$Ownership',
Homepage='$Homepage',
Job_Source='$Job_Source'
*Created=NOW() // if I remove this line it works fine.
*;
mysql_query ($sql) or die (mysql_error());


Also, this doesn't work for this table.
$Datetime = date( 'Y-m-d H:i:s');

INSERT INTO 
Created='$Datetime'...



On Wed, Apr 29, 2009 at 9:28 AM, Scott Haneda talkli...@newgeo.com wrote:

 We need to see your entire query and the table structure.  timestamp fields
 can have options set to auto update them, where order matters, and only one
 field can support that feature.

 Please supply more data.


 On Apr 28, 2009, at 2:18 PM, Antonio PHP wrote:

 You have an error in your SQL syntax; check the manual that corresponds to
 your MySQL server version for the right syntax to use near 'Created =
 NOW(),
 Updated = NOW()' at line 8

 'Created' and 'Updated' are set to datetime (InnoDB).

 The same syntax works for some newly created tables... and gives no error.

 It's very strange. 'Now()' works for some tables, and it doesn't for some.
 (All set in phpmyadmin...)

 What could have caused this? Any similar experience?


 --
 Scott * If you contact me off list replace talklists@ with scott@ *




Now() : SQL syntax error. But why?

2009-04-28 Thread Antonio PHP
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'Created = NOW(),
Updated = NOW()' at line 8

'Created' and 'Updated' are set to datetime (InnoDB).

The same syntax works for some newly created tables... and gives no error.

It's very strange. 'Now()' works for some tables, and it doesn't for some.
(All set in phpmyadmin...)

What could have caused this? Any similar experience?

Please help~.