2011-01-24 58 views
2

我使用的是Sympel插件和MySQL数据库。为了得到我的结果,我将查询传递给Propel连接并调用executeQuery()。获取ResultSet列名

我试图检索我的ResultSet的列名称,当我的查询提取没有结果。当它有结果时,我所要做的就是获取数组键名称。当我没有结果时,getRow()返回false,所以我不能拉任何数组键。

我的查询由多个具有各种列名别名的表组成。

是否有任何其他方式来获得列名称,同时仍然使用Propel对象?

回答

2

MySQL的克里奥尔语驱动程序使用“经典”MySQL函数,您也可以这样做。通过mysql_fetch_field(),即使没有返回行,您也可以获取有关特定字段的信息。您只需要传递正确的结果资源,然后通过ResultSetgetResource()方法获得该资源。

+0

这正是我需要的。非常感谢。这与mysql_fetch_fields和for循环的组合给了我需要的一切。 – clang1234 2011-01-25 19:49:52

1
SHOW COLUMNS FROM `table_name`; 
+0

不幸的是,我不是简单地处理一个表上的查询。查询由多个表格连接在一起,并使用别名的各个列组成。我将通过此澄清来编辑操作。 – clang1234 2011-01-24 18:03:28

0

如果它是具体的表,那么你就可以,因为它是上面说的做(SHOW COLUMNS FROM table_name)。

但是,如果你有一个复杂的查询,一个解决方案可能是使用正则表达式解析字符串。