コード例 #1
0
ファイル: SqlSrv.php プロジェクト: zitec/CodePaxCLI
    /**
     * 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;
    }
コード例 #2
0
ファイル: MySql.php プロジェクト: zitec/CodePaxCLI
    /**
     * 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;
    }