从特定的表中获取id并进行更改

时间:2014-04-03 05:51:11

标签: php mysql sql

如何从特定表中获取最后使用的索引并为其添加+1?

database login, table cars

我想我需要在这里添加####

protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
            $index = null, $content_range = null) {
        $file = parent::handle_file_upload(
            $uploaded_file, $name, $size, $type, $error, $index, $content_range
        );
        if (empty($file->error)) {
            $sql = 'INSERT INTO `'.$this->options['db_table']
                .'` (`carID`,`name`, `size`, `type`, `title`, `description`)'
                .' VALUES (#############,?, ?, ?, ?, ?)';
            $query = $this->db->prepare($sql);
            $query->bind_param(
                'sisss',
                $file->name,
                $file->size,
                $file->type,
                $file->title,
                $file->description
            );
            $query->execute();
            $file->id = $this->db->insert_id;
        }
        return $file;
    }

EDITED: 我应该更详细地讨论这个问题。我在做汽车经销商网站。有这种大型汽车信息,还有ajax图片上传。所以我需要将图像与关于汽车的其他信息联系起来。我的汽车信息表单在数据库中有一个自动增量ID行。因此,我试图通过汽车ID将图像绑定到汽车上(我希望每个上传的图像都有汽车ID)。我有这个mysql插入代码,我想添加最后更新的表ID(从汽车表)的值,并添加+1。这是个好主意吗?或者我应该采取另一种方式?

2 个答案:

答案 0 :(得分:0)

您应该 carID AUTOINCREMENT。然后无需插入carID值。

$sql = 'INSERT INTO `'.$this->options['db_table']
                .'` (`name`, `size`, `type`, `title`, `description`)'
                .' VALUES (?, ?, ?, ?, ?)';

See here.

答案 1 :(得分:0)

如果carID是自动增量值,那么您不必执行任何操作。 DB会为您完成此操作。只需将值保留为空(null),就像这样

INSERT INTO `'.$this->options['db_table']
            .'` (`carID`,`name`, `size`, `type`, `title`, `description`)'
            .' VALUES (null,?, ?, ?, ?, ?)

或从插入语句中删除列

INSERT INTO `'.$this->options['db_table']
            .'` (,`name`, `size`, `type`, `title`, `description`)'
            .' VALUES (?, ?, ?, ?, ?)