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? 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. 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. 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. 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. 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
Archived
This topic is now archived and is closed to further replies.