PDA

View Full Version : سوال: مشکل در استفاده از متد fetchOne



ABZiko
شنبه 22 شهریور 1393, 01:04 صبح
سلام و خسته نباشید، بنده یک mvc سه لایه PDO نوشتم و میحوام با توجه به ID که مدیر ثبت می کنه، اطلاعات همون کاربر نمایش داده بشه ولی برای متد fetchOne یک ارور می ده و نمی دونم چیه. این ارور : Fatal error: Call to a member function fetchOne() on a non-object in D:\Wamp\www\PHP\CheckingDatabases\Database.php on line 48
و این هم کد ها :



public static function FetchOne($query){

try{

$con=self::getConnection();
$rslt=$con->query($query);
$msg=$rslt->fetchOne(PDO::FETCH_ASSOC);
return $msg;}

catch(PDOException $e){

trigger_error($e->getMessage(),E_USER_ERROR);}}

مهرداد سیف زاده
شنبه 22 شهریور 1393, 06:56 صبح
به یه کدوم از روشهای زیر بنویس
البته روش دوم بهتره


$con=self::getConnection();
$rslt=$con->query($query)->fetch(PDO::FETCH_ASSOC);
return $rslt;






$sql = 'SELECT * FROM table LIMIT 1';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$stmt->setAttribute(PDO::FETCH_ASSOC);
$row = $stmt->fetch();
return $row;

ABZiko
شنبه 22 شهریور 1393, 13:22 عصر
تشکر آقا مهرداد، فقط یک سوال برای چی کد اول من نمی گیره، من می خوام از طریق یک فرم که باید شناسه کاربر نوشته بشه، اطلعات اون کاربر رو نشون بده ، بقیه کد ها هم به این صورت هستند :



public function getUser($id){

$sql="SELECT * FROM.'"DB_TBL"'.WHERE id='".$id;
print_r(Database::FetchOne($sql));

}


و لایه آخر هم :


case 'getUser' : {

$obj=new Get;
print_r($obj->getUser($_POST['id']));

break;}



و این هم فرم :


<form method="POST" action="initial.php">

<input type="text" name="id" placeholder="شناسه" />

<input type="hidden" name="task" value="getUser" />

<input type="submit" value="ارسال" />

</form>



تشکر !

مهرداد سیف زاده
شنبه 22 شهریور 1393, 14:00 عصر
شما از کلاس خاصی برای کار با دیتابیس استفاده کردی؟
و گرنه این FetchOne رو از کجا آوردید؟ چون توی توابع php ما فقط fetchAll داریم و گرفتن یک row تنها از fetch استفاده میشه.