Для отображения в PHP без ведущих нулей:
echo (int) $val;
Чтобы установить значение auto_increment (это не является хорошей практикой, вы должны позволить MySQL обрабатывать первичные ключи для вас!):
mysql> CREATE TABLE test(id INTEGER AUTO_INCREMENT, data TEXT, PRIMARY KEY id(id));
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO test VALUES (1,'23'),(2,'32'),(3,'3232');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'test';
+----------------+
| AUTO_INCREMENT |
+----------------+
| 4 |
+----------------+
1 row in set (0.00 sec)
mysql> SELECT MAX(id) FROM test;
+---------+
| max(id) |
+---------+
| 3 |
+---------+
1 row in set (0.00 sec)
Затем удалите из теста, проверьте, является ли auto_increment одним из максимальных (id) в PHP, а в противном случае:
mysql> ALTER TABLE test AUTO_INCREMENT=3;
Query OK, 3 rows affected (0.05 sec)
Records: 3 Duplicates: 0 Warnings: 0
Как у вас было 3 записи, auto inc было 4, удалено 1, так что 2 записи, auto inc должно быть следующим значением, поэтому установите его на 3.
Как и выше, это не очень хорошая практика, и вы можете оказаться в грязной данные, если вы не блокируете таблицы при выполнении этих запросов auto_inc - жертвуя производительность для первичного заказа, не кажется разумным!
в приведенном выше запросе 'ВЫБРАТЬ AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'тест' И TABLE_NAME = 'тест',' информация _schema мое имя базы данных ?? – diEcho
Какая разница между таблицей схемы и именем таблицы? я пишу и время с тем же именем таблицы – diEcho
схема - это DB, имя TABLE - information_schema - это динамические метаданные, сгенерированные MySQL о себе – Andy