MySQL-Datenbank mit PHP sichern

Mit dem folgenden Code können MySQL-Datenbanken auf einfache Weise gesichert werden. Es müssen lediglich die Verbindungs-Parameter an die Methode „backupMySQLDB“ übergeben werden. Optional kann noch ein Dateinamen für die Backup-Datei angegeben werden.

Code:

function backupMySQLDB($sDBUser, $sDBPassword, $sDBName, $sDBHost = "localhost", $sDBBackupFile = "")
{
    set_time_limit(0);
    $sOutput = "";
    $oConnection = new mysqli($sDBHost, $sDBUser, $sDBPassword, $sDBName);
    $mTables = $oConnection->query("SHOW TABLES");
   
    while ($aTable = $mTables->fetch_assoc())
    {
        $sOutput.="DROP TABLE IF EXISTS `".$aTable['Tables_in_'.$sDBName]."`;\n";
        $aResult = $oConnection->query("SHOW CREATE TABLE `".$aTable['Tables_in_'.$sDBName]."`")->fetch_assoc();
        $sOutput.=$aResult['Create Table'].";\n";
        $rResult =$oConnection->query("SELECT * FROM `".$aTable['Tables_in_'.$sDBName]."`");
       
        while($aRow = $rResult->fetch_assoc())
        $sOutput.= "INSERT INTO `".$aTable['Tables_in_'.$sDBName]."` VALUES('".implode("', '", array_values($aRow))."');\n";
    }
   
    fwrite($rOutput = fopen(($sDBBackupFile == "" ? "Backup-".$sDBName."-".date('Y-m-d_H-i').".sql" : $sDBBackupFile), "w"), $sOutput);
    fclose($rOutput);
}

MySQL-Datenbank mit PHP sichern weiterlesen

PHP: Verzeichnis rekursiv kopieren

PHP bietet leider keine Möglichkeit um ein Verzeichnis inkl. aller Unterordner an einen anderen Ort zu kopieren. Hierfür kann die folgende Methode verwendet werden:

Code:

function copyDir($sSourcePath, $sTargetPath)
{  
    if (is_dir($sSourcePath) && !is_dir($sTargetPath))
    {
        mkdir($sTargetPath, 0755);
        foreach ($oIterator = new \RecursiveIteratorIterator(
                new \RecursiveDirectoryIterator($sSourcePath, \RecursiveDirectoryIterator::SKIP_DOTS),
                \RecursiveIteratorIterator::SELF_FIRST) as $oItem)
        {
            if ($oItem->isDir())
                mkdir($sTargetPath.DIRECTORY_SEPARATOR.$oIterator->getSubPathName());
            else
                copy($oItem, $sTargetPath.DIRECTORY_SEPARATOR.$oIterator->getSubPathName());
        }
        return true;
    }
    return false;
}

PHP: Verzeichnis rekursiv kopieren weiterlesen

PHPCache

PHPCache ist eine PHP-Klasse mit der sich beliebige Werte für eine festgelegte Zeit zwischenspeichern lassen. Die zu speichernden Werte werden serialisiert und in eine Cache-Datei geschrieben. Beim Abrufen des Wertes wird das Änderungsdatum der Cache-Datei gelesen. Befindet sich dieses innerhalb des festgelegten Zeitraums, so wird der gecachte Wert zurückgegeben.

Beispiel:

 $oCache = new PHPCache();

 //to clear cache manually.
 //$oCache->clear('my_cache');

 //to clear whole cache directory
 //$oCache->clear();

 //data will be cached for 30 seconds. Second parameter is optional.
 $mData = $oCache->get('my_cache', 30);

 if(!$mData)
 {
   $mData = array(1 => date('Y-m-d H:i:s', time()),
                  2 => 'Wert 1',
                  3 => 'Blaaa');

   //save data to cache";
   $oCache->set('my_cache', $mData);
 }

//get cached data
var_dump($mData);

PHPCache weiterlesen

PHP: MySQL Query Funktion

Über die Methode „query“ lassen sich beliebige SQL-Queries ausführen. Der Parameter „sSQL“ enthält das Query. Der Rückgabewert enthält entweder das Result Set als Array oder true / false im Erfolgs- bzw. Fehler-Fall. Bevor die Methode verwendet werden kann, müssen noch der Benutzername, das Passwort und ggf. der Hostname für die Datenbankverbindung festgelegt werden.

Update 01.03.2015:
– „mysql_“-Funktionen wurden entfern, da deprecated
– Verbindung wird nur noch einmal aufgebaut

Code:

function query($sSQL)
{
    static $oConnection;
   
    //Change user / password / database!
    if(empty($oConnection))
    $oConnection = new mysqli("localhost", "root", "password", "database");
     
    $mResult = $oConnection->query($sSQL);
   
    if($mResult instanceof mysqli_result)
    {
        $aResult = array();
                   
        while ($aRow = $mResult->fetch_assoc())
        $aResult[] = $aRow;        
       
        $mResult->close();
        $mResult = $aResult;
    }
   
    return $mResult;
}

PHP: MySQL Query Funktion weiterlesen

Templates parsen in PHP

Die Funktion „parseTemplate“ bietet eine schlanke Alternative zu einer komplexen Template-Engine. Der erste Parameter enthält die Template Datei. Der zweite Parameter enthält die Variablen, die geparst werden sollen.

Code:

function parseTemplate($sTemplateFile, $aVariables = array())
{
    if(file_exists($sTemplateFile))
    {
        extract($aVariables);
        include($sTemplateFile);
    }
}

Templates parsen in PHP weiterlesen