2016-03-26 15 views
-1

Sadece tüm cevapların stackoverflow'ta mevcut olduğunu kontrol ettim, benzerler fakat tam olarak cevaplarım yok. Bu nedenle lütfen bu yayını kopyalamayın. PDO ile bir üye fonksiyon sorgusu() null çağrısı

bu

Ben diyelim yürütme olduğumda benim kodları olan

Fatal error: Call to a member function query() on null in C:\wamp64\www\ourCMS\index.php on line 12

İşte benim snippet'tir:

<?php 

class DB 
{ 
    private $dbHost; 
    private $dbName; 
    private $dbUser; 
    private $dbPass; 

    protected $con; 

    function set_db($host, $db, $user, $pass) 
    { 
     $this->dbHost = $host; 
     $this->dbName = $db; 
     $this->dbUser = $user; 
     $this->dbPass = $pass; 

    } 

    function connect() 
    { 
     $info = 'mysql:host='.$this->dbHost.';dbname='.$this->dbName; 
     try 
     { 
      $this->con = new PDO($info, $this->dbUser, $this->dbPass); 
     } 
     catch(PDOException $e) 
     { 
      print "Error Founds: ".$e->getMessage().PHP_EOL; 
      die(); 
     } 
    } 
} 

// here is the place where i'm trying to use this actually 
if (isset($_POST['submit'])) 
{ 
    include('include/database.php'); 

    $database = new DB; 
    $database->set_db("localhost", "ourcms", "root", ""); 
    $conn = $database->connect(); 

    $name = $_POST['nm']; 
    $query = "INSERT INTO testingpdo (name) VALUES ('$name')"; 
    $data = $conn->query($query); 
    $result = $data->fetchAll(PDO::FETCH_ASSOC); 

    print_r($result); 
} 
+0

Yığın Oveflow'ta aynı soruların yüzlerce olasılığı vardır ve bunlar yanıtlanır. Onların hiçbiri probleminizi çözmenize yardımcı olmadı mı? –

+0

Evet gerçekten! Az önce onları kontrol ettim, ama bende egzersiz yapmadılar! –

+0

Bu garip çünkü hepsi aynı problemle ilgili - bir 'null' değeri içeren bir değişkeniniz var, ama onu bir nesne olarak kullanmaya çalışıyorsunuz. Senin probleminle aynı. Bana göre, sadece bu kodu bir yerden kopyalayıp yapıştırdığınıza ve ne yaptığına dair hiçbir fikriniz olmadığına bakar. –

cevap

1

Sen ($conn = $database->connect();) :: DB'den bir şey dönmek bağlamayın. İşlev sonunda return $this->con; ekleyin.

function connect() 
{ 
    $info = 'mysql:host='.$this->dbHost.';dbname='.$this->dbName; 
    try 
    { 
     $this->con = new PDO($info, $this->dbUser, $this->dbPass); 
    } 
    catch(PDOException $e) 
    { 
     print "Error Founds: ".$e->getMessage().PHP_EOL; 
     die(); 
    } 
    return $this->con; 
} 
+1

Oh ~~~~~ Tek sorun bu muydu? Evet o ! Teşekkür ederim dostum ! –

İlgili konular