0

我有问题数据库表。我使用整数变量 Id 对表的所有元素进行排序。

我想要什么? 无论何时,都会添加一个新问题。它被分配了一个新的 ID,比我数据库中最后一个问题的 ID 大 1。

这是我所做的:

include('dbconnect.php');



    $ids = $connection->prepare('SELECT * FROM question ORDER BY id ASC');
    $ids->execute(array());
    $result = $ids->fetchAll(PDO::FETCH_ASSOC);
    $new_id = end($result['id']); //Error in this line.
    $new_id = $new_id + 1;

但是,我总是得到错误

Warning: end() expects parameter 1 to be array, null given in /Applications/MAMP/htdocs/question/submit.php on line 20

我正在使用该FetchAll语句,所以我觉得应该返回一个数组。任何人都可以找出错误在哪里。

添加到数据库中的每个新问题的 ID 为 1。

4

1 回答 1

2

使用AUTO_INCREMENT中所述:

AUTO_INCREMENT属性可用于为新行生成唯一标识:

创建表动物(
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     名称 CHAR(30) 非空,
     主键(id)
);

插入动物(名称)值
    ('狗'),('猫'),('企鹅'),
    ('松懈'),('鲸鱼'),('鸵鸟');

从动物中选择*;

返回:

+----+----------+
| 编号 | 姓名 |
+----+----------+
| 1 | 狗 |
| 2 | 猫 |
| 3 | 企鹅 |
| 4 | 松懈|
| 5 | 鲸鱼|
| 6 | 鸵鸟|
+----+----------+

没有为该AUTO_INCREMENT列指定值,因此 MySQL 自动分配了序列号。您还可以显式地将NULL或 0 分配给列以生成序列号。

于 2012-10-21T08:41:50.657 回答