从php中的mysql查询结果中获取列信息?

时间:2015-03-20 21:19:12

标签: php mysql

我正在尝试打印输入的任何查询的列标题。我有其他代码连接到数据库并实际打印结果,但我遇到麻烦

'$result .= $heading->name;'

我一直收到这个错误:

'Catchable fatal error: Object of class mysqli_result could not be converted to string in...'

有人可以解释问题是什么吗?根据php手册,这应该给我正确的信息。我虽然是相当新的PHP,所以如果你改进代码,请解释你是如何做到的?

到目前为止,我有以下代码从查询中获取结果:

$result = mysqli_query($conn,$query);
if($result){
    if( mysqli_num_rows($result)>0){
        $columnNo = mysqli_num_fields($result);
        for($i=0;$i<$columnNo;$i++){
            $heading = mysqli_fetch_field_direct($result,$i);
            $result .= $heading->name;
        }
    }
}

2 个答案:

答案 0 :(得分:0)

$result是mysqli使用的对象。然后你尝试将一个字符串附加到它的末尾。

只需使用$result以外的其他变量名称,这将是一个字符串,您将在其中收集列的名称。或者您可以将名称保存在这样的数组中:

$var[] = $heading->name;

答案 1 :(得分:0)

因为 $ result 是您用于执行查询的对象,所以我将无法存储来自db的任何其他数据。你必须使用另一个变量(比如 $ variable 来存储来自db的数据。请遵循以下代码:

$result = mysqli_query($conn,$query);
$variable='';  // add this
if($result){
    if( mysqli_num_rows($result)>0){
        $columnNo = mysqli_num_fields($result);
        for($i=0;$i<$columnNo;$i++){
            $heading = mysqli_fetch_field_direct($result,$i);
            $variable .= $heading->name;  //modify here
        }
    }
}

我希望这能解决问题..