2010-12-31 13 views
0

私はthis php pdo wrapperを使用しています。これは私のデータベースクラスです。pdo page wise fetching

class Db 
{ 
    private static $_pdoObject = null; 
    protected static $_fetchMode = PDO::FETCH_ASSOC; 
    protected static $_connectionStr = null; 
    protected static $_driverOptions = array(); 

    private static $_username = null; 
    private static $_password = null; 

    public static function setConnectionInfo($schema, $username = null, $password = null, $database = 'mysql', $hostname = 'localhost') 
    { 
     if($database == 'mysql') { 
      self::$_connectionStr = "mysql:dbname=$schema;host=$hostname"; 
      self::$_username  = $username; 
      self::$_password  = $password; 
     } else if($database == 'sqlite'){ 
      // For sqlite, $schema is the file path 
      self::$_connectionStr = "sqlite:$schema"; 
     } 

     // Making the connection blank 
     // Will connect with provided info on next query execution 
     self::$_pdoObject = null; 
    } 
    public static function getResult($sql, $params = array()) 
    { 
     $statement = self::_query($sql, $params); 
     return $statement->fetchAll(self::$_fetchMode); 

    } 

    private static function _query($sql, $params = array()) 
    { 
     if(self::$_pdoObject == null) { 
      self::_connect(); 
     } 

     $statement = self::$_pdoObject->prepare($sql, self::$_driverOptions); 
    $arrayjson1=array(
      'success' => false, 
      'message'=>'database error ' 
     ); 
    $msg= formjson(array(),array(),$arrayjson1); 
     if (! $statement) { 
      $errorInfo = self::$_pdoObject->errorInfo(); 
     //~ print_r($errorInfo); 
      //~ echo $msg;exit; 
      throw new PDOException("Database error [{$errorInfo[0]}]: {$errorInfo[2]}, driver error code is $errorInfo[1]"); 
     } 

     $paramsConverted = (is_array($params) ? ($params) : (array ($params))); 

     if ((! $statement->execute($paramsConverted)) || ($statement->errorCode() != '00000')) { 
      $errorInfo = $statement->errorInfo(); 
       //~ print_r($errorInfo); 
      throw new PDOException("Database error [{$errorInfo[0]}]: {$errorInfo[2]}, driver error code is $errorInfo[1]"); 
     //~ echo $msg;exit; 
     } 

     return $statement; 
    } 
} 

私は

入力

によって

を渡していることを私はしたいすべてのユーザー

 $sql="select userid,concat_ws(' ',firstname,lastname) as name $fields 
     from users where 1=1 $condition order by updatedon $limit"; 
    $row=Db::getResult($sql,$query); 

を取得するために、このクエリを呼び出しています

  1. ページあたりのレコードの番号 2.Page号

そのページのレコードが唯一である必要があり、それ

出力

が来るようにするにはページあたりのレコード数。

これをpdoでどのように達成できますか?

助けてください。ありがとう

答えて

0

下記の記事を読んでください。それは興味のある基準を理解するのに役立ちます。

paging