/** * Return the current DB version which can be * either a change script or a data change script * * The array keys are: version, date_added * * @param int $_script_type can take values of 0,1,2 * @return array * */ public function getLatestVersion($_script_type) { $query = 'SELECT TOP 1 (CAST(major AS varchar) + \'.\' + CAST(minor AS varchar) + \'.\' + CAST(point AS varchar)) as version, date_added FROM ' . CodePax_DbVersions::TABLE_NAME . ' WHERE script_type = ? ORDER BY date_added DESC'; //set the script type param $stmt = sqlsrv_prepare($this->db, $query, array(&$_script_type)); sqlsrv_execute($stmt); $version_array = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC); if (!empty($version_array)) { $version_array['date_added'] = $version_array['date_added']->format('Y-m-d H:i:s'); } if ($_script_type == CodePax_DbVersions::TYPE_CHANGE_SCRIPT) { $_script_type = CodePax_DbVersions::TYPE_BASELINE; sqlsrv_execute($stmt); $baseline_version_array = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC); if (!empty($baseline_version_array)) { $baseline_version_array['date_added'] = $baseline_version_array['date_added']->format('Y-m-d H:i:s'); } $version_array = CodePax_DbVersions::getLatestDbVersion($version_array, $baseline_version_array); } //when nothing is found, a default is returned return empty($version_array) ? CodePax_DbVersions::getDefaultVersion() : $version_array; }
/** * Return the current DB version which can be * either a change script or a data change script * * The array keys are: version, date_added * * @param int $_script_type can take values of 0,1,2 * @return array * */ public function getLatestVersion($_script_type) { $query = $this->db->prepare('SELECT CONCAT(major, ".", minor, ".", point) AS version, date_added FROM ' . CodePax_DbVersions::TABLE_NAME . ' WHERE script_type = ? ORDER BY date_added DESC LIMIT 1'); $query->execute(array($_script_type)); $version_array = $query->fetch(PDO::FETCH_ASSOC); if ($_script_type == CodePax_DBVersions::TYPE_CHANGE_SCRIPT) { $query->execute(array(CodePax_DbVersions::TYPE_BASELINE)); $baseline_version_array = $query->fetch(PDO::FETCH_ASSOC); $version_array = CodePax_DbVersions::getLatestDbVersion($version_array, $baseline_version_array); } //when nothing is found, a default is returned return empty($version_array) ? CodePax_DbVersions::getDefaultVersion() : $version_array; }