dmccabe Posted June 16, 2008 Share Posted June 16, 2008 Hmmm I am trying to create an admin function to create tables and insert data in to them. However it should only create the table if it doesn't exist. <?php /* Function to Create Main Category Tables */ function createmaintable($cat_name,$cat_url){ $sql_createtable = "CREATE TABLE IF NOT EXISTS categories (cat_id INT NOT NULL ,cat_name VARCHAR( 255 ) NOT NULL ,cat_url VARCHAR( 255 ) NOT NULL ,PRIMARY KEY ( cat_id )) ENGINE = innodb"; mysql_query($sql_createtable); if (isset($cat_name)) { $sql_insertmaincat = "INSERT INTO categories (cat_id ,cat_name ,cat_url )VALUES ('', '$cat_name', '$cat_url')"; if (mysql_query($sql_insertmaincat)) { $result = "Success"; } else { $result = mysql_error(); } } else { $result = "No Catergory Name Specified"; } return $result; } ?> The first time I run this, then it works perfectly. Second and any subsequent time it returns Duplicate entry '0' for key 1 Any thoughts? Quote Link to comment https://forums.phpfreaks.com/topic/110431-duplicate-entry-0-for-key-1/ Share on other sites More sharing options...
effigy Posted June 16, 2008 Share Posted June 16, 2008 cat_id should be AUTO_INCREMENT. Quote Link to comment https://forums.phpfreaks.com/topic/110431-duplicate-entry-0-for-key-1/#findComment-566569 Share on other sites More sharing options...
dmccabe Posted June 16, 2008 Author Share Posted June 16, 2008 Thanks for advice, i added the auto_increment, but now it doesnt work at all, I have deleted the table and tried again and now it fails on the first try with the same error. Quote Link to comment https://forums.phpfreaks.com/topic/110431-duplicate-entry-0-for-key-1/#findComment-566577 Share on other sites More sharing options...
effigy Posted June 16, 2008 Share Posted June 16, 2008 Check for errors when running $sql_createtable. Also, trying changing cat_id's value in the INSERT SQL to NULL. Quote Link to comment https://forums.phpfreaks.com/topic/110431-duplicate-entry-0-for-key-1/#findComment-566578 Share on other sites More sharing options...
mushroom Posted June 16, 2008 Share Posted June 16, 2008 If "cat_id" is "AUTO_INCREMENT" there is no need to include in your second query at all, the field and value will fill in automatically. Quote Link to comment https://forums.phpfreaks.com/topic/110431-duplicate-entry-0-for-key-1/#findComment-566622 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.