php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #11428 Duplicate record insertion using SQL
Submitted: 2001-06-12 06:28 UTC Modified: 2001-07-22 13:10 UTC
From: john at neutralize dot com Assigned:
Status: Closed Package: MySQL related
PHP Version: 4.0.5 OS: Win NT4 PWS
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: john at neutralize dot com
New email:
PHP Version: OS:

 

 [2001-06-12 06:28 UTC] john at neutralize dot com
The script was fine for an Access database but when I changed it over for a MySQL database the insertion queries sometimes (most of the time but not all the time) adds two records to the database.

Heres my connection:

$db_hostname   = "jd";
$db_username   = "john";
$db_password   = "nirvana";
$db_database   = "neuquote";

$conn = mysql_connect($db_hostname, $db_username, $db_password)
  or die ('Unable to connect to database');
		
$db = mysql_select_db($db_database,$conn)
  or die ('Unable to connect to database');

Heres my queries:

$today = getdate();
$today = $today['mday']."/".$today['mon']."/".$today['year']." ".$today['hours'].":".$today['minutes'].":".$today['seconds'];
						
// Insert new company
$sql="INSERT INTO Company (CompanyName,CompanyAddress1,CompanyAddress2,CompanyAddress3,CompanyAddress4,CompanyArea,CompanyCountryId,CompanyPostalCode,CompanyTel,CompanyFax,CompanyEmail,CompanyURL,CompanyDesc,CompanyStatus,TimeCompanyCreated) ". 
				 "VALUES ('$company_name','$company_address1','$company_address2','$company_address3','$company_address4','$company_area',$company_country,'$company_postal_code','$company_tel','$company_fax','$company_email','$company_url','$company_desc',0,'$today')";

$res_insert_company = mysql_query($sql,$conn);

//create a new hash to insert into the db and the confirmation email
$hash=md5($email.$hidden_hash_var);
$sql="INSERT INTO CompanyContact (ContactTitle,ContactFirstName,ContactSurname,ContactMiddleInitial,ContactAddress1,ContactAddress2,ContactAddress3,ContactAddress4,ContactArea,ContactCountryId,ContactPostalCode,ContactTel,ContactExt,ContactFax,ContactEmail,ContactPositionId,ContactUsername,ContactPassword,ContactRemoteAddress,ContactConfirmHash,ContactStatus,TimeContactCreated,CompanyId) ". 
					"VALUES ($title,'$first_name','$surname','$middle_initial','$address1','$address2','$address3','$address4','$area',$country_code,'$postal_code','$tel','$ext','$fax','$email',$pos,'$user_name','". md5($password1) ."','$GLOBALS[REMOTE_ADDR]','$hash',0,'$today',$company_id)";

$res_insert_contact=mysql_query($sql,$conn);

Most of the time two companies are added to the db and sometimes two companycontacts, this is not consistent though as sometimes it works fine.

I have checked the submit button is not being clicked twice and the code is running one insert for company and one for companycontact.

Is this a common problem with MySQL and PHP?

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-06-12 12:41 UTC] sniper@php.net
I have never experienced such problems with Mysql.
Please try shortening your code to shortest
possible that still causes this.

Also, I suggest you don't use this kind of constructs:

"blaablaa"."blaablaa"

And all the data inserted to db should be quoted. ie. 
use addslashes() on it.

--Jani

 [2001-07-22 13:10 UTC] andy@php.net
no feedback after 40 days.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue May 06 02:01:28 2025 UTC