PHP bildirimde hazırlanmıştır: Neden bu ölümcül bir hata atıyor?

2 Cevap php

Burada yanlış ne oluyor hiçbir fikrim yok. Atma tutar ...

Ölümcül hata: olmayan bir nesne üzerinde hazırlamak () üye işlevi Çağrı

... O $select = $dbcon->prepare('SELECT * FROM tester1'); kısmına alır her zaman. Biri ben yanlış yapıyorum ne kadar bazı ışık tutabilir?

function selectall()            //returns array $client[][]. first brace indicates the row. second indicates the field
  {
  global $dbcon;

  $select = $dbcon->prepare('SELECT * FROM tester1');
  if ($select->execute(array()))
    {
    $query = $select->fetchall();

    $i = 0;

    foreach ($query as $row)
      {
      $client[$i][0] = $row['id'];
      $client[$i][1] = $row['name'];
      $client[$i][2] = $row['age'];
      $i++;
      }
    }
  return $client;
  } 
$client = selectall();
echo $client[0][0];

2 Cevap

Açık cevap $dbcon hiç başlatılmadı veya bu fonksiyon denir sonra başlatıldı olmasıdır.

Ne kod başlatılıyor $dbcon? Edilir Nerede ve ne zaman çalıştırılır? Ayrıca veritabanına erişen bir script every çağırma başlaması gerekir farkındayız? Geçen sadece PHP global kapsamı ne olduğunu anlamak emin olmaktır. O tek bir istek için kapsamlı demektir. Terim global biraz yanıltıcı.

Emin düzgün $dbcon tanımlar yapmak. Mysqli kullanıyorsanız, bağlantı doc kurulum nasıl olduğunu görmek. Eğer aynı işleve bağlantı nesnesini iletebilirsiniz

function selectall($dbcon){
   ....
}