如何获取行数据MySql的max(id)

kir*_*ppa 2 php mysql codeigniter

我想获得行数据的最大ID.在我的表中,第一列是id然后是firstname等.这是我用来获取行数据的max(id)的sql命令.

<?PHP  $maxid=$this->db->query("SELECT MAX(id) FROM `emplyee_personal_details`");
                print_r( $maxid) ;?>
Run Code Online (Sandbox Code Playgroud)

但它打印出一堆数据,因为它是一个数组.但是在数据插入和更新之前,我只需要行数据的maximam id进行验证.

如何获得maxid.我使用codeigniter框架.

Sho*_*omz 10

试试这个:

$maxid = $this->db->query('SELECT MAX(id) AS `maxid` FROM `emplyee_personal_details`')->row()->maxid;
Run Code Online (Sandbox Code Playgroud)

UPDATE

即使您的表为空(这与上面的示例不同),这也会有效:

$maxid = 0;
$row = $this->db->query('SELECT MAX(id) AS `maxid` FROM `emplyee_personal_details`')->row();
if ($row) {
    $maxid = $row->maxid; 
}
Run Code Online (Sandbox Code Playgroud)


Der*_*ile 5

使用诸如“ 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
Run Code Online (Sandbox Code Playgroud)

请参阅:http : //ellislab.com/codeigniter/user-guide/database/active_record.html