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

पीडीओ घातक त्रुटि:एक गैर-ऑब्जेक्ट पर एक सदस्य फ़ंक्शन तैयार () पर कॉल करें

आपके कोड में कई समस्याएं हैं।

दूसरे उत्तर में दो को समझाया गया, जिससे आपका कोड काम करेगा (आखिरकार यह सब खराब हो गया था), लेकिन यह अभी भी गलत तरीका है, जो डेटाबेस से जितनी बार आपके पास है उतनी बार कनेक्ट होगा

DatabaseConnection वर्ग को इस तरह बदलें

class DatabaseConnection{
    public $pdo;
    public function __construct(){
        $user = 'root';
        $pass = '';
        $dsn  = 'mysql:charset=utf8;dbname=test;host=localhost;charset=utf8';
        $opt  = array(
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        );
        $this->pdo = new PDO($dsn, 'root', '', $opt);
    }
}

लॉगिन रजिस्टर कंस्ट्रक्टर को इस तरह बदलें

function __construct($db){
    $this->db= $db;
}

और इस तरह से register.php करें

require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);

और फिर LoginRegister में $this->db . का उपयोग करें $pdo . के बजाय पूरे रास्ते।

$db कनेक्शन को एप्लिकेशन क्लास के लिए बाहरी सेवा बनाने का मुख्य विचार। अन्यथा यह सब तिरस्कृत वैश्विक के समान होगा, लेकिन किसी अन्य रूप में।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में अंतराल श्रेणियों में कुशलता से शामिल होना

  2. Wamp का उपयोग कर डेटाबेस में sql फ़ाइल आयात करना

  3. PHP त्रुटि:'100' का अधिकतम फ़ंक्शन नेस्टिंग स्तर तक पहुंच गया, निरस्त करना

  4. कोडनिर्देशक चुनें- से-कहां

  5. विंडो 7 पर लोकलहोस्ट (10061) पर MySQL सर्वर से कनेक्ट नहीं हो सकता