Call to a member function prepare() on a non-object

PEAR, Smarty, ADOdb, OOP, PHP 5, XML, UML, Şabloane de proiectare, PHP-GTK.

Moderatori: coditza, Emil, Moderatori

robucuresti
PHPRomania Supporter
Mesaje: 5
Membru din: Dum Sep 08, 2013 12:05 pm

Call to a member function prepare() on a non-object

Mesajde robucuresti » Dum Sep 08, 2013 12:30 pm

Buna ziua!!! Sunt nou in OOP si vreau sa fac un wrapper care sa contina connect, select, insert, update sa numai fiu nevit sa le scriu de fiecare data dar, ma lovesc de problema asta: "Call to a member function prepare() on a non-object";
clasa:
<?php
class Mysql
{
public $host="localhost";
public $user="root";
public $pass="pass";
public $dname="dbname";

protected $connection;
protected $sql;
protected $numRows;

public function __construct()
{
}

public function connect()
{
try
{
$this->connection=new PDO("mysql:host=".$host.";dbname=".$dname, $user, $pass);
$this->connection->setAttribute(PDO::ATR_ERRMODE, PDO::ATR_ERRMODE_EXCEPTION);
}
catch (PDOexception $e)
{
echo $r->Getmessage();
}
}

public function DB_Query($sql)
{
$query = $this->connection->prepare($sql);
$query->execute();
return $query->fetchAll();
}

}
?>
exemplu:
require("class_db.php");
$db_var=new Mysql();
$sql="select * from categorii";
$result=$db_var->Db_query($sql);

ce gresesc ca nu pot sa imi dau seama...multumesc!!!



Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Re: Call to a member function prepare() on a non-object

Mesajde Birkoff » Dum Sep 08, 2013 12:51 pm

ori sunt eu nedormit ori nu inteleg ce vrei sa faci aici

catch (PDOexception $e)
{
echo $r->Getmessage();
}

$e sau $r ?


2) nu mai lua de bune querurile, trateaza si situatia in care ar apare erori

$query->execute();
return $query->fetchAll(); // de unde stii ca nu a dat eroare la linia de mai sus si nu mai ajunge aici?
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

robucuresti
PHPRomania Supporter
Mesaje: 5
Membru din: Dum Sep 08, 2013 12:05 pm

Re: Call to a member function prepare() on a non-object

Mesajde robucuresti » Dum Sep 08, 2013 1:53 pm

am scris gresit eu acolo...cu $r si $e...cum am spus sunt nou in ceea ce priveste oop si vreau sa fac acest wrapper si imi da eroarea mai sus mentionata...

Avatar utilizator
mndrk
Senior Member
Mesaje: 271
Membru din: Mar Iun 22, 2010 12:02 pm
Localitate: Bucuresti
Contact:

Re: Call to a member function prepare() on a non-object

Mesajde mndrk » Lun Sep 09, 2013 11:28 am

Pe lângă problema aceea, nu te conectezi la baza de date tu. Ai scrisă funcția dar nu e apelată, de accea $connection nu are nicio valoare.
Pentru acesta poți face următorul update în funcția __construct();

Cod: Selectaţi tot

public function __construct(){
    $this->connect();
}


Acum se conectează automat când este inițializată clasa.


Înapoi la “PHP Avansat”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 8 vizitatori