#!/usr/bin/env php sql = $sql; $this->options = new stdclass(); $this->options->options = array(); } public function build() { $sql = $this->sql; if(isset($this->limit)) { $sql .= ' LIMIT ' . $this->limit->offset . ', ' . $this->limit->rowCount; } if(!empty($this->options->options) && in_array('SQL_CALC_FOUND_ROWS', $this->options->options)) { $sql = str_replace('SELECT', 'SELECT SQL_CALC_FOUND_ROWS', $sql); } return $sql; } } // 5. 🔴 强制要求:必须包含至少5个测试步骤 $statement1 = new MockStatement(); r($biTest->prepareSqlPagerTest($statement1, 10, 1, 'mysql')) && p() && e('SELECT SQL_CALC_FOUND_ROWS * FROM test_table LIMIT 0, 10'); // 步骤1:正常分页MySQL驱动 $statement2 = new MockStatement(); r($biTest->prepareSqlPagerTest($statement2, 20, 1, 'mysql')) && p() && e('SELECT SQL_CALC_FOUND_ROWS * FROM test_table LIMIT 0, 20'); // 步骤2:第一页分页参数 $statement3 = new MockStatement(); r($biTest->prepareSqlPagerTest($statement3, 10, 1, 'sqlite')) && p() && e('SELECT * FROM test_table LIMIT 0, 10'); // 步骤3:非MySQL驱动分页 $statement4 = new MockStatement(); r($biTest->prepareSqlPagerTest($statement4, 10, 10, 'mysql')) && p() && e('SELECT SQL_CALC_FOUND_ROWS * FROM test_table LIMIT 90, 10'); // 步骤4:大页码分页参数 $statement5 = new MockStatement(); r($biTest->prepareSqlPagerTest($statement5, 1, 5, 'mysql')) && p() && e('SELECT SQL_CALC_FOUND_ROWS * FROM test_table LIMIT 4, 1'); // 步骤5:每页记录数为1的分页