Drupal - db_fetch_array her satır için NULL döndürür

3 Cevap php

Benim db_query satır getirmek için Drupal db_fetch_array kullanıyorum. Ancak, döndürülen her satır null eşittir. PHP myadmin işlerin içine sorgu yazarak, bu yüzden ne oluyor hiçbir fikrim yok. db_num_rows de satır sayısını döndürür. İşte kod:

if(count($rebuild_ids))
  {
    $ids=implode(",",$rebuild_ids);
    $type_stmt = "SELECT * from {" . ItemType::$type_table_name . "} where id IN ($ids)";
    $new_items=db_query($type_stmt);
    if(!$new_items || db_num_rows($new_items) == 0)
    {
        return;
    }
    while($row = db_fetch_array($new_items));
    {
      if ($row!=NULL)
      {
          echo "I work!"
          $game_items[] = $row['id'];
          ItemInstance::$nid_to_item_type_code[$row['nid']] = $row['id'];
      }
    }
  }

Ifadesi (yani yankılanırken "Ben çalışmak!" Asla) Ancak, bu üçüncü içine alır asla herhangi bir fikir?

3 Cevap

Dost tavsiyesi: Drupal http://drupal.org/coding-standards bir kodlama standartları vardır - onları tutmaya yardımcı olur. Bu hata, bu şekilde çok daha belirgin olurdu ....

Ayrıca sorgu değişkenleri koyarak büyük bir hayır-hayır see http://drupal.org/writing-secure-code olduğunu

$row, aksi takdirde bile üçüncü if bildirimde ulaşmak olmaz, tanım gereği NULL değildir.

$row bilgi, while döngü zaten ilgilenir, ama yine de kontrol etmek istiyorsanız, gibi bir şey kullanmak empty($row) olup olmadığını kontrol etmek gerek yoktur ya da count($row) > 0; NULL ile bir dizi karşılaştırın yoktur.

Kontrol olsa da tamamen gereksizdir ...

K anladım. Bu süre döngü sonra noktalı virgül oldu!