我目前正在尝试从表中提取数据,并且正在使用它:
$online = mysqli_fetch_field(mysqli_query($db,
"SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'"));
但是,它不能正常回显$online
给出“数组”。
这是来自$ online
的var_dumpobject(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) }
答案 0 :(得分: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'");
答案 1 :(得分: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()
用于数据检索。
答案 2 :(得分:2)
您正在寻找的功能不是mysqli_fetch_field()
。它提取有关字段的信息,但不提取字段数据本身。
请改为尝试:
$row = mysqli_fetch_assoc(mysqli_query($db, "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'"));
echo $row['online'];
答案 3 :(得分:1)
除非我弄错了,否则无法直接获取一列的数据。您将需要获取整行,即使它只是一列,然后手动从结果数组中获取值。
编辑:混乱的答案看起来非常像我的意思。
答案 4 :(得分:1)
这有点偏离主题,但我建议您使用更高级别的框架来处理数据库,例如http://adodb.sourceforge.net/