2017-07-27 2 views
0

Ich habe versucht, auf die gleiche Frage/Antworten zu schauen, kann aber nicht herausfinden.Getting error-Fatal error: Aufruf einer Memberfunktion prepare() auf Null in

WENN ICH ZU INDEX ZUGREIFE. IT gibt Fehler

"Schwerwiegender Fehler: Aufruf an eine Elementfunktion herzustellen() auf null in ......"

----------------- ----------- Code ist ------------------

------------- Page1- index.php

<?php 
include 'inti_test.php'; 
$user_id =3; 
$user = $getFromUserClass->userData($user_id); 
?> 

------------------- page2-inti_test.php

<?php 

    $dsn = 'mysql:host=localhost; dbname=testdb'; 
    $user = 'root'; 
    $pass = 'mypass'; 
    try{ 
     $PDO = new PDO($dsn, $user, $pass); 
    }catch(PDOException $e){ 
     echo 'Connection error!' .$e->getMessage(); 
    } 
//------------------------- 
class User{ 
protected $pdo; 

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

public function userData($user_id){ 
$stmt = $this->pdo->prepare("SELECT * FROM `user_detail_master` WHERE 
`user_id`=:user_id"); 
$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT); 
$stmt->execute(); 
return $stmt->fetch(PDO::FETCH_OBJ); 
} 
} 

//--------------------- 
global $pdo; 
session_start(); 
$getFromUserClass = new User($pdo); 

?> 
+0

'$ PDO' und' $ pdo' sind __different__ Variablen. –

+0

Sie haben '$ PDO' für die Verbindung und verwenden' $ pdo' –

+0

Zuerst müssen Sie 'session' am Anfang der Seite beginnen und als zweites machen Sie einen Tippfehler '$ pdo' und' $ PDO' sind zwei verschiedene Dinge. –

Antwort

0

wie das

<?php 

    $dsn = 'mysql:host=localhost; dbname=testdb'; 
    $user = 'root'; 
    $pass = 'mypass'; 
    global $pdo; 
    try{ 
     $pdo = new PDO($dsn, $user, $pass); 
    }catch(PDOException $e){ 
     echo 'Connection error!' .$e->getMessage(); 
    } 
//------------------------- 
class User{ 
protected $pdo; 

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

public function userData($user_id){ 
$stmt = $this->pdo->prepare("SELECT * FROM `user_detail_master` WHERE 
`user_id`=:user_id"); 
$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT); 
$stmt->execute(); 
return $stmt->fetch(PDO::FETCH_OBJ); 
} 
} 

//--------------------- 

session_start(); 
$getFromUserClass = new User($pdo); 

?> 
+0

Erklären Sie bitte, welche Änderungen Sie gemacht haben und __why__. –

+0

Ich stimme Ihren Worten zu Top-Kommentar zu – mmmorgen

Verwandte Themen