我想获得行数据的最大ID。在我的表中,第一列是id然后是firstname等。 这是我用来获取行数据的max(id)的sql命令。
<?PHP $maxid=$this->db->query("SELECT MAX(id) FROM `emplyee_personal_details`");
print_r( $maxid) ;?>
但它打印一堆数据,因为它是一个数组。但是在插入和更新数据之前,我只需要行数据的maximam id进行验证。
如何获得maxid。我使用codeigniter框架。
答案 0 :(得分:10)
试试这个:
$maxid = $this->db->query('SELECT MAX(id) AS `maxid` FROM `emplyee_personal_details`')->row()->maxid;
更新
即使你的桌子是空的(不像我上面的例子),这也会有效:
$maxid = 0;
$row = $this->db->query('SELECT MAX(id) AS `maxid` FROM `emplyee_personal_details`')->row();
if ($row) {
$maxid = $row->maxid;
}
答案 1 :(得分:3)
使用像“SELECT MAX(id)...”这样的原始查询的问题是它不是抽象的,可能不适用于每个SQL引擎。我认为这样做的积极记录方式是这样的:
$this->db->select_max('id');
$query = $this->db->get('emplyee_personal_details');
// Produces: SELECT MAX(id) as age FROM emplyee_personal_details
请参阅:http://ellislab.com/codeigniter/user-guide/database/active_record.html
答案 2 :(得分:1)
SELECT id FROM table ORDER BY id DESC LIMIT 1
这将获得最高的id值,当我读到它时,“它打印出一堆数据,因为它是一个数组”我觉得你真正想要的是那个数组的一部分。数据库查询始终返回复杂的结构,如数组或对象。因此,如果您只想要标量值(数字作为整数),您可以使用以下内容:
$maxid = (int)$maxid['id'];
或者像这样(如果你有一个对象):
$maxid = (int)$maxid->id;
HTH,~Ray
答案 3 :(得分:0)
public function getMaxCategoryId() {
$query = $this->db->query("SELECT category_id+1 AS maxid FROM " . DB_PREFIX . "category ORDER BY category_id DESC LIMIT 1");
return $query->row['maxid'];
}
错误未定义索引maxid
答案 4 :(得分:0)
<?php`$qry = "select max(ID)+1 As ID from records";`
$result = $con->query($qry);
$row = $result->fetch_assoc();`echo "New ID To Enter = ".$row["ID"];?>
连接后只需编写此代码即可使用
答案 5 :(得分:0)
试试这个,希望它有所帮助,
return $this->db->select_max('id')
->get('your_table_name')
->row()->id;