我正在尝试从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一样?
答案 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';
但是,老实说,我只需要知道主键就可以通过它进行索引。例如,主键可以是多部分键。它并不像你想象的那么简单。