2017-03-12 3 views
-2

Ich füge Daten aus einer Datei zu meiner Datenbank. Derzeit ist der Speicherort der Dateien nur auf diejenigen innerhalb des Verzeichnisses D:/ beschränkt. Ich möchte in der Lage sein, das Hinzufügen von Dateien aus mehreren Verzeichnissen zu unterstützen.So laden Sie eine CSV-Datei aus einem Verzeichnis in die Datenbank

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname = "stdprt"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$filename = "d:/" . $_POST['fname']; 
$handle = fopen($filename, "r"); 
while (($data = fgetcsv($handle)) !== FALSE) { 
    $num = count($data); 
    $row; 
    $sql = "INSERT into marks(regno,semister,subcode,subname,internals,externals,credits)values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]')"; 
    //echo "INSERT into marks(regno,semister,subcode,subname,internals,externals,credits)values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]')"; 
    if ($conn->query($sql) === TRUE) { 
     // echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 
    echo "<br>"; 
} 
?> 
<h2>Uploaded Successfully....</h2> 
<a href="admin.php">back</a> 
+0

nicht pedantisch sein, aber, Sie nicht eine Datei hochladen, lesen Sie nur eine auf dem lokalen Server. und durch das Aussehen der Code-Last Daten infile wäre eine viel bessere Idee https://dev.mysql.com/doc/refman/5.7/en/load-data.html – nogad

+0

$ filename = "d: /". $ _POST ['fname']; Es akzeptiert nur Daten von d Laufwerk. Also muss ich nicht d fahren, ich möchte von jedem Laufwerk hochladen. – Naveen

+0

@Naveen Wie Nogad darauf hingewiesen hat, laden Sie nichts hoch. Die Tatsache, dass der Client und der Server dieselbe Maschine sind, verursacht Verwirrung. Sie müssen in der Lage sein, Daten vom Client (Browser) auf den Server (PHP/Apache) hochzuladen. –

Antwort

0

Wenn Sie eine Datei in einem anderen Laufwerk wählen wollen, sind können Sie diese Zeile im Code ändern und das Verzeichnis am Anfang ändern.

$filename="d:/".$_POST['fname'];

So zum Beispiel, wenn man will, das Verzeichnis ändern F es wie so wäre zu fahren:

$filename="f:/".$_POST['fname'];

Wenn Sie die Möglichkeit geben Sie ein benutzerdefiniertes Verzeichnis ermöglichen, wollten in Ihre Anfrage dann könnten Sie es auf die gleiche Weise übergeben, wie Sie fname übergeben. Sagen Sie zum Beispiel, Sie haben Ihr benutzerdefiniertes Verzeichnis in einem Schlüssel mit dem Namen cust_dir übergeben, den Sie als Verzeichnis hinzufügen könnten.

Der obige Code würde einen benutzerdefinierten Verzeichnispfad verwenden, den Sie in der Variablen $ _POST übergeben haben, wenn Sie einen übergeben haben. Wenn Sie cust_dir nicht übergeben, wird standardmäßig das Verzeichnis d:/ verwendet.

Verwandte Themen