MySQL / PHP 5 - 获取上次获取的行的ID

时间:2010-08-09 04:14:02

标签: php mysql

我正在尝试从mysql_fetch_assoc返回的结果中创建一个查找表,这是我到目前为止的代码:

protected function dumpResultAsHash($primaryKey)
{
    if (empty($primaryKey) || !isset($primaryKey))
        throw new Exception("Primary key cannot be null or not defined!");

    $resultset = array();

    while ($result = mysql_fetch_assoc($this->m_result))
        $resultset[$result[$primaryKey]] =$result;

    return $resultset;
}

但是,我不喜欢我必须指定主键的列名并将其提供给函数的事实。有没有办法可以确定每条记录的主键值,比如mysql_insert_id,但对于我的情况,就像上次提取的id一样?

1 个答案:

答案 0 :(得分:1)

根据this,您可以通过以下方式获取表格的主键:

SELECT k.column_name
FROM information_schema.table_constraints t
JOIN information_schema.key_column_usage k
USING(constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
  AND t.table_schema='db'
  AND t.table_name='tbl';

但是,老实说,我只需要知道主键就可以通过它进行索引。例如,主键可以是多部分键。它并不像你想象的那么简单。