Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

PHP MySQL Integrity constraint violation

Posted on 2009-07-04
4
701 Views
Last Modified: 2013-12-13
Error Message: Debug error while inserting into database: 1SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 1

My table schema:
ID[INT Primary Key] Auto increments
boxNumber[INT]
show[TINYINT UNSIGNED Nullable]
description[TEXT Nullable]
url[VARCHAR(100) Nullable]
purchased[TIMESTAMP]

There is only one record in the table with ID (primary key) of zero. Also, that record has a boxNumber of zero, even though I inserted a 1... not sure if that's related.

I am a TOTAL newbie when it comes to MySQL. I am using Eclipse with Zend on XP. If you need any other information, tell me what you need and how I go about getting it.

Thank you all VERY much.
$DatabaseObj = Zend_Registry::get('Instance/DatabaseObj');
$DatabaseObj->beginTransaction();
 
$data = array(
    	'description'    => $description,
    	'url' 		 => $urlAddress,
    	'purchased'      => $today,
	'boxNumber'      => $boxNumber);
 
// This line causes the exception...
$DatabaseObj->insert('tblImages', $data); 
 
// Therefore, this line never executes.
$DatabaseObj->commit();

Open in new window

0
Comment
Question by:yaronusa
  • 2
  • 2
4 Comments
 
LVL 19

Expert Comment

by:Michael701
ID: 24777029
where did you set $boxNumber

try hard coding the boxNumber (just once) and see if you still get the error. This would tell you that's it's something in the insert function.
0
 

Author Comment

by:yaronusa
ID: 24777049
I have tried to pass $boxNumber as other numbers but the insert statment is still throwing an exception.

The single row/record in the table has an ID of zero, and remember ID auto increments. So the second record I try to insert throws an exception, that I'm trying to insert another row/record with a duplicate ID of zero.

Notice I am not including the ID in the insert statement, that should automatically be provided and incremented, I thought.

0
 
LVL 19

Accepted Solution

by:
Michael701 earned 500 total points
ID: 24777163
try setting it. if it works then something is wrong with the way you defined the table.

do you have mysql admin? can you
describe table_name;
$data = array(
        'ID'             => 1,
        'description'    => $description,
        'url'            => $urlAddress,
        'purchased'      => $today,
        'boxNumber'      => $boxNumber);

Open in new window

0
 

Author Closing Comment

by:yaronusa
ID: 31599763
Actually, the column was not set to auto increment.... my fault.
0

Featured Post

Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

As a database administrator, you may need to audit your table(s) to determine whether the data types are optimal for your real-world data needs.  This Article is intended to be a resource for such a task. Preface The other day, I was involved …
Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

861 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question