In PHP, how do I get the field name of the field that's been set as to auto increment when a new rec is added to it?
In most cases, it's the same as the PRIMARY_KEY of the table but not necessarily always.
So this question has 2 parts with the second one branching into a 3rd part.
1- How to get the name of the auto-incrementing field name...
2- How to get the name of the primary_key field name...
2.1 How to get the primary_key(s) info when a table uses more than one field as its primary key...
if you want to get the primary key column of the table, you can use this code:
SELECT k.COLUMN_NAME
FROM information_schema.table_constraints t
LEFT JOIN information_schema.key_column_usage k
USING(constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
    AND t.table_schema=DATABASE() 
    AND t.table_name='tbName';    -- the name of your table
To get the auto-incremented field, try this:
SELECT Auto_increment 
FROM information_schema.tables 
WHERE table_name   = 'tbName'  
  AND table_schema = DATABASE();  
                        You can get the table information using the SHOW COLUMNS FROM table. Something like this:
$res = $mysqli->query('SHOW COLUMNS FROM tablename');
while($row = $res->fetch_assoc()) {
  if ($row['Extra'] == 'auto_increment')
    echo 'Field with auto_increment = '.$row['Field'];
  if ($row['Key'] == 'PRI')
    echo 'Field with primary key = '.$row['Field'];
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With