2016-12-23 3 views
0

Ich versuche, ein Back-up von einer MySQL-Tabelle mit dem folgenden Code zu machen:Fehler Sicherung von MySQL-Tabelle mit yii2

public function actionOut() { 
    $tableName = 'medication'; 
    $backupFile = \Yii::$app->basePath.'/patients/yourtable.sql'; 
    $query = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName"; 
    Yii::$app->db->createCommand($query)->execute(); 
} 

Ich erhalte eine Fehlermeldung, dass ich nicht in die Datei erstellen/schreiben, Die \Yii::$app->basePath ist nicht gut formatiert und ein Fehler über cxampphttdocsfront - c:/xampp/httdocs/front. Wie finde ich den Ordner web für Konsolen-Apps?

+0

Ich kann nicht genau sagen, was Ihre Frage ist. Es klingt, als würden Sie schlechte Daten weitergeben. – Aaron

+0

Wenn ich diese Aktion ausführen habe ich den Fehler kann nicht erstellen/schreiben zu file.it ist eine Konsolenaktion von yii2 – dimis283

+0

Verbesserte Formatierung und allgemeine grammer –

Antwort

0

Ich schlage vor, Sie folgenden Code verwenden:

<?php 

$backupFile = \Yii::getAlias('@webroot') . DIRECTORY_SEPARATOR . 'patients' . DIRECTORY_SEPARATOR . $tableName . '.sql'; 
// or 
$backupFile = \Yii::$app->basePath . DIRECTORY_SEPARATOR . 'patients' . DIRECTORY_SEPARATOR . $tableName . '.sql'; 

werde ich richtig auf Windows & Linux arbeiten.

+0

Ich benutze diese $ backupFile = str_replace ("\\", "/", Yii :: $ app-> basePath). '/ web/Patienten /'. Datum ('Ym-d_H_m_s'). '. sql'; Wie ich sehe, gibt es ein Problem mit "\" in der DOS-Befehlszeile – dimis283