0

私は現在、テーブルからデータを抽出しようとしていますが、これを使用しています:

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

ただし、echogive $online"Array"としては機能しません。

これが$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

私が間違っていない限り、1つの列のデータだけを直接フェッチする方法はありません。1列だけであっても、行全体をフェッチしてから、結果の配列から手動で値を取得する必要があります。

編集:カオスの答えは私が意図したものとほとんど同じように見えます。

于 2009-06-07T18:00:06.413 に答える
1

少しオフトピックですが、データベースを操作するには、たとえばhttp://adodb.sourceforge.net/などのより高いレベルのフレームワークを使用することをお勧めします。

于 2009-06-07T18:02:53.490 に答える