2009-06-07 100 views
0

我目前正在试图从表中提取数据,并在用这样的:我应该使用什么mysqli函数?

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

但是,它不工作作为呼应$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) } 

回答

1

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

编辑:混沌的答案看起来非常像我的意思。

2

您正在寻找的功能不是mysqli_fetch_field()。它提取有关字段的信息,但不提供字段数据本身

尝试此代替:

$row = mysqli_fetch_assoc(mysqli_query($db, "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'")); 
echo $row['online']; 
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 - 获取结果一行作为枚举阵列

    ​​

$result是:

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

这是一个有点offtopic,但我建议你使用更高级别的框架来使用数据库的工作,像http://adodb.sourceforge.net/例如

+0

谢谢:)它看起来有用,我肯定会考虑的! – bear 2009-06-07 18:23:19