Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

गंभीर त्रुटि:किसी सदस्य फ़ंक्शन क्वेरी को कॉल करें () PHP क्लास

आपका तरीका:

public function db_connect() {    

            $connection = mysqli_connect(self::$db_host, self::$db_user, self::$db_pass, self::$db_name) or die("Error " . mysqli_error($connection)); 
            echo "Conexión realizada". "<br>";

    }  

$connection . को वापस नहीं करता है विधि से वापस ताकि बाकी विधि कॉल विफल हो जाए:

public function db_connect() {    

            $connection = mysqli_connect(self::$db_host, self::$db_user, self::$db_pass, self::$db_name) or die("Error " . mysqli_error($connection)); 
            echo "Conexión realizada". "<br>";
           return $connection; // return the $connection object
    }  

जैसा कि बताया गया है, आपका कोड कुशल नहीं है क्योंकि प्रत्येक क्वेरी के लिए कोड (पुनः) डीबी से जुड़ता है। यह अनावश्यक रूप से महंगा/अक्षम है।

इसे हल करने के कई तरीके हैं।

  1. DB वर्ग की तात्कालिकता पर DB से कनेक्ट करें

उदा

class Db{

    private static $db_host = "localhost";
    private static $db_user = "root";
    private static $db_pass = "";
    private static $db_name = "sivi";

    public $connection;

    public function __construct()
   {
      $this->connection = $this->db_connect();
   }  

    public function db_connect() {    

            $connection = mysqli_connect(self::$db_host, self::$db_user, self::$db_pass, self::$db_name) or die("Error " . mysqli_error($connection)); 
            echo "Conexión realizada". "<br>";
            return $connection;
    }  
}
  1. आलसी कनेक्शन, यानी केवल पहली निष्पादित क्वेरी पर कनेक्ट करें

उदा

class Db{

    private static $db_host = "localhost";
    private static $db_user = "root";
    private static $db_pass = "";
    private static $db_name = "sivi";
    public $connection = null;
    public function __construct()
    {
    }  
    public function db_connect() {    
        $connection = mysqli_connect(self::$db_host, self::$db_user, self::$db_pass, self::$db_name) or die("Error " . mysqli_error($connection)); 
        echo "Conexión realizada". "<br>";
        return $connection;
    }  
    public function db_query($query){
        if ( null ==== $this->connection ) $this->connection = $this->db_connect();
        var_dump($query);
        $result = $this->connection->query($query);
        while($row = mysqli_fetch_array($result)) { 
            echo $row["COD_PRE"] . "<br>";
        }
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL क्वेरी से nth रिकॉर्ड लौटाएं

  2. mysql/अस्पष्ट खोज के लिए लेवेनशेटिन दूरी का कार्यान्वयन?

  3. सेट नाम के बिना पीडीओ के साथ संयोजन कैसे निर्दिष्ट करें?

  4. किसी प्रक्रिया का उपयोग करके कॉलम के डिफ़ॉल्ट मान को कैसे बदलें

  5. MySQL में बहुत बड़े पूर्णांक संग्रहीत करना