• 03-11-2021, 21:15:21
    #1
    Veritabanından veri çekmek istediğimde aşağıdaki hatayla karşılaşıyorum.
    Alıntı
    Notice: Undefined variable: db in C:AppServwwwtasarimphpilanparthead.php on line 5

    Fatal error: Uncaught Error: Call to a member function query() on null in C:AppServwwwtasarimphpilanparthead.php:5 Stack trace: #0 C:AppServwwwtasarimphpilanindex.php(1): include() #1 {main} thrown in C:AppServwwwtasarimphpilanparthead.php on line 5
    Hataya sebep olan kod aşağıda.
    <?php $query = $db->query("SELECT * FROM sitekategoriler");$query->execute();
    if ( $query->rowCount() ){     
        foreach( $query as $row ){          
            echo $row['kat_adi']."<br />";     
        }
    }
    ?>
    Yardımcı olur musunuz?
  • 03-11-2021, 21:18:18
    #2
    Veritabanı bağlantısı yaptınız mı?

    Yaptıysanız veritabanı bağlantısını hangi değişkene atadınız?

    Çünkü $db isminde bir değişken olmadığını söylüyor.
  • 03-11-2021, 21:19:40
    #3
    batuhan_polat adlı üyeden alıntı: mesajı görüntüle
    Veritabanı bağlantısı yaptınız mı?

    Yaptıysanız veritabanı bağlantısını hangi değişkene atadınız?

    Çünkü $db isminde bir değişken olmadığını söylüyor.
    Bağlantım aşağıdaki şekilde.

    <?php
    
    require_once 'baglan.php';
    
    $servername = "localhost";
    $database = "demo";
    $username = "root";
    $password = "roottoor";
    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $database);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . 
    mysqli_connect_error());
    }
    mysqli_close($conn);
    ?>
  • 03-11-2021, 21:23:33
    #4
    yucelyener adlı üyeden alıntı: mesajı görüntüle
    Bağlantım aşağıdaki şekilde.

    <?php
    
    require_once 'baglan.php';
    
    $servername = "localhost";
    $database = "demo";
    $username = "root";
    $password = "roottoor";
    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $database);
    // Check connection
    if (!$conn) {
        die("Connection failed: " .
    mysqli_connect_error());
    }
    mysqli_close($conn);
    ?>
    Veritabanınızı $conn isimli değişkene atamışsınız. Bundan sonra veritabanı ile yapacağınız her işlemi $db yerine $conn ile yaparak yapabilirsin.
    Aşağıda ki kodu çalıştırırsan çalışacaktır.
    <?php $query = $conn->query("SELECT * FROM sitekategoriler");
    $query->execute();
    if ( $query->rowCount() ){     
        foreach( $query as $row ){          
            echo $row['kat_adi']."<br />";     
        }
    }
    ?>
  • 03-11-2021, 21:25:29
    #5
    batuhan_polat adlı üyeden alıntı: mesajı görüntüle
    Veritabanınızı $conn isimli değişkene atamışsınız. Bundan sonra veritabanı ile yapacağınız her işlemi $db yerine $conn ile yaparak yapabilirsin.
    Aşağıda ki kodu çalıştırırsan çalışacaktır.
    <?php $query = $conn->query("SELECT * FROM sitekategoriler");
    $query->execute();
    if ( $query->rowCount() ){    
        foreach( $query as $row ){          
            echo $row['kat_adi']."<br />";    
        }
    }
    ?>
    bu sefer de bu hatayı aldım.

    Alıntı
    Warning: mysqli::query(): Couldn't fetch mysqli in C:AppServwwwtasarimphpilanparthead.php on line 5

    Fatal error: Uncaught Error: Call to a member function execute() on bool in C:AppServwwwtasarimphpilanparthead.php:6 Stack trace: #0 C:AppServwwwtasarimphpilanindex.php(1): include() #1 {main} thrown in C:AppServwwwtasarimphpilanparthead.php on line 6
  • 03-11-2021, 21:37:06
    #6
    yucelyener adlı üyeden alıntı: mesajı görüntüle
    bu sefer de bu hatayı aldım.
    Bunu dener misin?
    <?php
    
        $result = $conn->query("SELECT * FROM sitekategoriler");
    
        if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo $row['kat_adi']."<br />";     
        }
        } else {
            echo "0 results";
        }
        $conn->close();
    
    ?>
  • 03-11-2021, 21:45:16
    #7
    batuhan_polat adlı üyeden alıntı: mesajı görüntüle
    Bunu dener misin?
    <?php
    
        $result = $conn->query("SELECT * FROM sitekategoriler");
    
        if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo $row['kat_adi']."<br />";    
        }
        } else {
            echo "0 results";
        }
        $conn->close();
    
    ?>
    Diğer kodlarda site tamamen kayboluyordu. Bu kodda kaybolmadı fakat verileri çekmedi ve aşağıdaki hataları verdi.

    Alıntı
    Warning[COLOR=rgba(0, 0, 0, 0.87)]: mysqli::query(): Couldn't fetch mysqli in [/COLOR]C:AppServwwwtasarimphpilanparthead.php[COLOR=rgba(0, 0, 0, 0.87)] on line [/COLOR]7

    Notice[COLOR=rgba(0, 0, 0, 0.87)]: Trying to get property 'num_rows' of non-object in [/COLOR]C:AppServwwwtasarimphpilanparthead.php[COLOR=rgba(0, 0, 0, 0.87)] on line [/COLOR]9
    [COLOR=rgba(0, 0, 0, 0.87)]0 results[/COLOR]
    Warning[COLOR=rgba(0, 0, 0, 0.87)]: mysqli::close(): Couldn't fetch mysqli in [/COLOR]C:AppServwwwtasarimphpilanparthead.php[COLOR=rgba(0, 0, 0, 0.87)] on line [/COLOR]17
  • 03-11-2021, 21:48:58
    #8
    yucelyener adlı üyeden alıntı: mesajı görüntüle
    Diğer kodlarda site tamamen kayboluyordu. Bu kodda kaybolmadı fakat verileri çekmedi ve aşağıdaki hataları verdi.
    Hocam ben vertiabanı bağlantılarında yıllardır kendi özel sınıflarımı kullandığım için böyle sade bağlantıları unutmuşum.
    Ancak canlı test ile sorunu çözebilirim.
    Ama bundan önce mysqli yerine PDO ile bağlantı kurmanızı öneririm.

    Gene de mysqli ile yapacaksanız bu sayfadan destek alarak yapmayı denermisin?

    Hepsini kopyala yapıştır yapıp kendi mysql bilgilerinizi ve tablo bilgilerinizi girerek?
  • 03-11-2021, 21:58:08
    #9
    batuhan_polat adlı üyeden alıntı: mesajı görüntüle
    Hocam ben vertiabanı bağlantılarında yıllardır kendi özel sınıflarımı kullandığım için böyle sade bağlantıları unutmuşum.
    Ancak canlı test ile sorunu çözebilirim.
    Ama bundan önce mysqli yerine PDO ile bağlantı kurmanızı öneririm.

    Gene de mysqli ile yapacaksanız bu sayfadan destek alarak yapmayı denermisin?

    Hepsini kopyala yapıştır yapıp kendi mysql bilgilerinizi ve tablo bilgilerinizi girerek?
    PDO ile bu şekilde bağlandım.,
    <?php
    $mysqlsunucu = "localhost";
    $mysqlkullanici = "root";
    $mysqlsifre = "roottoor";
    try {
        $conn = new PDO("mysql:host=$mysqlsunucu;dbname=demo;charset=utf8", $mysqlkullanici, $mysqlsifre);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
    catch(PDOException $e)
        {
        echo "Bağlantı hatası: " . $e->getMessage();
        }
    ?>
    pdo ile nasıl veri çekeceğim herşeyi denedim sürekli hata veriyor. ÖRNEK:
    <?php $query = $db->prepare("SELECT * FROM sitekategoriler");$query->execute();if ( $query->rowCount() ){     foreach( $query as $row ){          echo $row['kat_adi']."<br />";     }}?>
    video izliyorum. kod herşeyiyle aynı bağlantı pdo ile aynı videoda çalışıyor bende hata veriyor çözemedim.