PDA

View Full Version : حرفه ای: مشکل با pdo - ضروری



charcharkh
یک شنبه 16 اسفند 1394, 09:14 صبح
سلام به همه اساتید من همچین مشکلی دارم کلی هم گشتم و گشتم وگشتم آخرش جز گیج شدن هیج جیز نصیبم نشد لطفا کمک نمایید
مشکل من اینه که فهمیدم یه نفر دیگه هم همچین مشکلی داشته ولی جوابش زیاد برام واضح نبود.


یه کلاس با استفاده از PDO نوشتم. روی لوکال کار می کنه و مشکلی نداره ، اما حالا که آپ کردم رو سرور ارور میده. یه همچین چیزی

Fatal error: Call to a member function prepare() on a non-object in /home/up5050/public_html/classes/abstarct.Database.php on line 69


اینجا رو ببینید لطفا (http://forum.iranphp.org/Thread-%D8%AD%D9%84-%D8%B4%D8%AF-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%DA%A9%D9%84%D8%A7%D8%B3-PDO)

خوب باید چیکار کنم ؟

اینم کدهام هست.


<?php
require_once 'db_config.php';
require_once 'security.class.php';
abstract class Database{
private $host = DB_HOST;
private $user = DB_USER;
private $pass = DB_PASS;
private $dbname = DB_NAME;

public $dbh;
public $stmt;
protected $error = array();



public function __construct(){

// Set DSN
$dsn = 'mysql:charset=utf8;host=' . $this->host . ';dbname=' . $this->dbname;
// Set options
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Create a new PDO instanace
try{
$this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
}
// Catch any errors
catch(PDOException $e){
echo 'DB error';
}
}

//exe
public function exe($sql){
return $this->dbh->exec($sql);
}

//query
public function simpleQuery($sql){
return $this->dbh->query($sql);
}

//prepare
public function prepareQuery($query){
$this->stmt = $this->dbh->prepare($query);
}

//bind value
public function bind($param, $value, $type = null){
if (is_null($type)) {
switch (true) {
case is_int($value):
$type = PDO::PARAM_INT;
break;
case is_bool($value):
$type = PDO::PARAM_BOOL;
break;
case is_null($value):
$type = PDO::PARAM_NULL;
break;
default:
$type = PDO::PARAM_STR;
}
}
$this->stmt->bindValue($param, $value, $type);
}

//execute
public function exeSql(){
$this->stmt->execute();
}

//fetch single row
public function single(){
return $this->stmt->fetch(PDO::FETCH_ASSOC);
}

//fetch all record
public function all(){
return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
}

//get row number
public function rowCount(){
return $this->stmt->rowcount();
}

//row count as counter the column

//last insert Id
public function lastInsertId(){
return $this->dbh->lastInsertId();
}

//start transition
public function beginTransaction(){
return $this->dbh->beginTransaction();
}

//end transition
public function endTransaction(){
return $this->dbh->commit();
}

//cancel transition
public function cancelTransaction(){
return $this->dbh->rollBack();
}
}

این خطا رو میگیرم
Fatal error: Call to a member function prepare() on a non-object in /home/up5050/public_html/classes/abstarct.Database.php on line 69

مشکل سر خط 27 هست اما نمیدونم چیکار باید انجام دهم !!!!!

charcharkh
یک شنبه 16 اسفند 1394, 09:48 صبح
ضروریه کمک نمایید لطفا :تشویق:

charcharkh
یک شنبه 16 اسفند 1394, 10:00 صبح
واقعا 23 بار دیده شده ولی یه نفر محض رضای خدا یه راهنمایی کوچک نکرده :ناراحت:

numberone1
یک شنبه 16 اسفند 1394, 11:23 صبح
این خط و عوض کن ببین چه اروری میده


echo 'DB error';

echo $e->getMessage();

charcharkh
یک شنبه 16 اسفند 1394, 11:35 صبح
ممنونم
اینو میگه:

SQLSTATE[28000] [1045] Access denied for user 'up***_user'@'localhost' (using password: YES)
Fatal error: Call to a member function prepare() on a non-object in /home/up5050/public_html/classes/abstarct.Database.php on line 70

numberone1
یک شنبه 16 اسفند 1394, 11:58 صبح
ممنونم
اینو میگه:

SQLSTATE[28000] [1045] Access denied for user 'up***_user'@'localhost' (using password: YES)
Fatal error: Call to a member function prepare() on a non-object in /home/up5050/public_html/classes/abstarct.Database.php on line 70

خوب مشخصه دیگه
یوزر نیم یا پسورد یا اسم دیتابیس یا مشخصات هاست اشتباهه
کد ها درسته