Ne mysqli fonksiyonu kullanmalıyım?

5 Cevap php

Ben şu anda bir tablodan veri ayıklamak için çalışıyorum, ve bu kullanıyorum:

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

Ancak, $online "Array" vermek yankılanan olarak çalışmıyor.

Burada $ bir var_dump çevrimiçi

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) }

5 Cevap

İstediğiniz:

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

mysqli_fetch_field() is for retrieving column definitions, değil veri, ve gayet iyi çalışıyor: Sana bir sütun tanımı nesnesi geri veriyor.

mysqli_fetch_array() , mysqli_fetch_assoc() , and mysqli_fetch_object() veri alımı içindir.

Aradığınız işlev değil mysqli_fetch_field(). Bu information about the field, ancak field data itself ayıklar.

Bunun yerine bu deneyin:

$row = mysqli_fetch_assoc(mysqli_query($db, "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'"));
echo $row['online'];

Yanılmıyorsam, doğrudan sadece bir sütunun veri almak için hiçbir yolu yoktur. Bunu sadece tek bir sütun olsa bile, tüm satır almak gerekir, ve sonra el sonuç dizisinden değerini alacaktır.

edit: Kaos cevabı oldukça fazla demek ne gibi görünüyor.

Bu biraz offtopic, ama ben sizin gibi, veritabanı ile çalışmak için yüksek düzeyde bir çerçeve kullanmanızı öneririz http://adodb.sourceforge.net/, örneğin