给定结果集,我如何确定查询中指定的字段的实际名称(不是它们的别名).
$query = "SELECT first AS First_Name, last AS Last_Name FROM people"; $dbResult = mysql_query($query); $fieldCount = mysql_num_fields($dbResult); for ($i=0; $i<$fieldCount; $i++) { // Set some values $fieldName = mysql_field_name($dbResult, $i); }
此示例返回字段名称,但在此示例中,它返回别名"First_Name"而不是实际字段名称"first".
是否可以从这样的查询中获取实际的字段名称.特别是如果我正在编写一个函数,并且不知道将抛出什么查询.
如果您使用的是MySQLi:
http://www.php.net/manual/en/mysqli-result.fetch-field.php
字段对象具有"orgname"属性.
"经典"MySQL等效函数不报告原始列名.
简短的回答:你没有.
答案很长:一旦数据集被MySQL提取并发送回PHP,PHP现在拥有的唯一信息就是列或别名(如果您使用它们).无法查看结果集并确定原始列名称是什么.您必须切换到另一个像mysqli这样的数据库驱动程序来获取此信息.