MYSQL Dump laden via PHP

Hi,

ich arbeite grade an einem Insallscript, dieses soll eine Dumpdatei die ich erstellt habe öffnen und dann in einem MYSQL query ausführen.

Leide bekomm ich eine Fehlermdelung:

Anfang der Datei install.sql
Code:
-- phpMyAdmin SQL Dump
-- version 2.11.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 05. Februar 2009 um 14:48
-- Server Version: 5.0.51
-- PHP-Version: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Datenbank: `TEST`
--


Die Fehlermeldung ist folgende:
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; -- -- Datenbank: `TEST` -- -- --------------------------------------' at line 10

Irgendjemand einen Vorschlag?
Kann ich nicht sagen, dass einfach alle MYSQL Kommentare beim Query umgangen werden sollen? Den wenn ich die Datei in phpmyadmin rein kopiere funktioniert alles Problemlos!

Wäre euch sehr verbunden!
 
Hi, entferne doch einfach alle Kommentarzeilen aus dem Dump, z.B. so:
PHP:
$sql = preg_replace("/--.*$/mU", '', $sql);
 
Das größere Problem wird sein, dass [phpf]mysql_query[/phpf] nur ein Query verarbeitet und nicht mehrere auf einmal.
Von daher müsstest du jede Zeile einzelnd einlesen, prüfen ob es valides Query ist und ausführen.

Einfacher wäre es jedenfalls den passenden SQL Befehl dafür zu nehmen:
LOAD DATA INFILE
 
Danke!


FELIX mit deiner Methode bekomm ich einen noch komischeren Fehler. Also mein query sieht so aus:
PHP:
$query = 'LOAD DATA INFILE "install.sql"';

Fehlermeldung
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Muss ich hier wieder was spezielles beachten? Kann ich hier wieder nur ein query benutzen?

Ich will das auch nicht in eine Tabelle laden, sondern in eine Datenbank! Verstehe?

Hab wohl vergessen INTO zu definieren! Wie gesagt, ich möchte einfach die ganze Datei ausführen? Geht das nicht?
 
Zuletzt bearbeitet:
Zurück