php – 从空的MySQL查询结果中检索列名

有没有办法检索不返回数据的查询的列名?

我正在使用(有些)复杂的查询,例如:

SELECT 
    i.*,
    ic1.permalink as category_permalink, 
    ic1.title as category_title,
    ic1.sid as category_sid,
    ic2.permalink as hook_category_permalink,
    ic2.title as hook_category_title,
    ic2.sid as hook_category_sid
FROM item i
    LEFT JOIN item_to_item_category itic ON i.sid = itic.item_sid
    LEFT JOIN item_category ic1 ON ic1.sid = itic.item_category_sid
    LEFT JOIN item_category ic2 ON ic1.hook = ic2.sid
WHERE i.uid = ''
LIMIT 0,1 

由于WHERE i.uid =“”,此查询的结果将为空.当没有结果时,有没有办法找到列名?

请注意,我知道使用DESCRIBE的解决方案,并从information_schema.columns中选择column_name,其中table_name =’person’;但我需要一个更灵活的解决方案,以适应这些多列查询.

还请注意,我仍在使用原始的PHP MysqL扩展(因此没有MysqLi,也没有PDO).

任何人?

解决方法:

对于PDO,请尝试PDOStatement->getColumnMeta().对于MysqLi,有mysqli_result->fetch_fields(),mysqli_result->fetch_field()mysqli_result->fetch_field_direct().对于MysqL,将其替换为PDO或MysqLi.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...