0

我目前正在尝试从表中提取数据,并且正在使用它:

 $online = mysqli_fetch_field(mysqli_query($db, 
      "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'")); 

但是,它不能作为回显$online给“数组”。

这是来自 $online 的 var_dump

object(stdClass)#3 (11) { 
               ["name"]=> string(6) "online" 
               ["orgname"]=> string(6) "online" 
               ["table"]=> string(10) "tbl_system" 
               ["orgtable"]=> string(10) "tbl_system" 
               ["def"]=> string(0) "" 
               ["max_length"]=> int(1) 
               ["length"]=> int(11) 
               ["charsetnr"]=> int(63) 
               ["flags"]=> int(36865) 
               ["type"]=> int(3) 
               ["decimals"]=> int(0) } 
4

5 回答 5

8

尝试以下功能之一:

  • mysqli_fetch_array— 以关联、数字数组或两者的形式获取结果行

    $row = mysqli_fetch_array($result);
    echo $row[0]; // or
    echo $row['online'];
    
  • mysqli_fetch_assoc— 获取结果行作为关联数组

    $row = mysqli_fetch_assoc($result);
    echo $row['online'];
    
  • mysqli_fetch_object— 将结果集的当前行作为对象返回

    $row = mysqli_fetch_object($result);
    echo $row->online;
    
  • mysqli_fetch_row— 以枚举数组的形式获取结果行

    $row = mysqli_fetch_row($result);
    echo $row[0];
    

存在$result

$result = mysqli_query($db, "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'");
于 2009-06-07T18:01:12.450 回答
3

你要:

$query = mysqli_query($db, "SELECT online FROM tbl_system WHERE property = 'extranet'");
$row = mysqli_fetch_array($query);
$online = $row[0];

mysqli_fetch_field()用于检索列定义,而不是数据,并且它工作得很好:给你一个列定义对象。

mysqli_fetch_array(), mysqli_fetch_assoc(), 和mysqli_fetch_object()用于数据检索。

于 2009-06-07T17:58:37.023 回答
2

您要查找的功能不是mysqli_fetch_field(). 它提取有关字段的信息,但不提取字段数据本身

试试这个:

$row = mysqli_fetch_assoc(mysqli_query($db, "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'"));
echo $row['online'];
于 2009-06-07T18:00:12.560 回答
1

除非我弄错了,否则无法直接获取一列的数据。您将需要获取整行,即使它只是一列,然后手动从结果数组中获取值。

编辑:混乱的答案看起来很像我的意思。

于 2009-06-07T18:00:06.413 回答
1

这有点离题,但我建议您使用更高级别的框架来处理数据库,例如http://adodb.sourceforge.net/

于 2009-06-07T18:02:53.490 回答