pdo charcter set

0 امتیاز
25 بازدید
سوال شده فروردین 5, 1395 توسط hadi.es  
استاد

چطور میشه با روش pdo در پی اچ پی داده های فارسی رو بیرون آورد، من بیرون میارم جملات در هم بر هم میاره.

با روش mysql در تابع mysql_set_charset میشد اینکارو کرد. ولی در pdo مشکل دارم

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

1 پاسخ

0 امتیاز
پاسخ داده شده فروردین 5, 1395 توسط ASHKARAN  
انتخاب شده فروردین 6, 1395 توسط Javdan
 
بهترین پاسخ

با عرض سلام بنده این کلاس رو ساختم و در پروژه فعلیم دارم ازش استفاده می کنم .....

<?php 

class MyPDO extends PDO {
 

    public function __construct() {
 
        
        try {
             parent::__construct("mysql:host=" . Config::servername . ";dbname=" . Config::dbname, Config::username, Config::password );
             self::$instance = $this;
             self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
             self::$instance->exec("set names utf8");
          } catch (PDOException $e) {
        echo "Connection failed: " . $e->getMessage();
    } 
    }
 
    private function __clone()
    {
    }
 
    public static function getInstance(){
 
        
        if (self::$instance==null) {
              self::$instance =  new MyPDO("mysql:host=" . Config::servername . ";dbname=" . Config::dbname, Config::username, Config::password);
              self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
              self::$instance->exec("set names utf8");
        }
        return self::$instance;
    }
 
    static private $instance = null;
    
    
    
    
    public static function getRowCount($sth)
    {
        return $sth->rowCount() ;
    }
    
    
    public static function getError($sth)
    {
        return $sth->errorInfo() ;
    }
    
    
    
}
?>

اطلاعات ارتباط با دیتابیس رو هم در کلاس Config ذخیره کردم ....

<?php
 
class Config
{  
    const servername = "localhost";
    const username   = "user"; 
    const dbname     = "spta";  
    const password   = "pass";  
     
} 

 

که البته در کلاس PDOباید Config رو هم include بفرمایید

دقت داشته باشید Collation دیتابیستون هم UTF-8  باشه !

977 سوال

819 پاسخ

1,329 دیدگاه

1,273 کاربر

متاسفانه نیستم

این مطلب را به اشتراک بگذارید

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...