moinsen jungs und mädels.
ich hab da nen kleines problem. und zwar möchte ich eine sql-datei auslesen die dann mit anderer tabellenstruktur wieder in eine datenbank soll.
ich weiß wieviele und welche tabellen exportiert werden...
die sql sieht etwa so aus: (beschränkt auf die wichtigen zeilen
)
Ich möchte nun jeweils den teil zwischen "VALUES" und "UNLOCK TABLES;" auslesen.
also :
feld[0]='(text1),(text2);';
feld[1]='(text3),(text4);';
feld[2]='(text5),(text6),(text7);';
mein php-code: funzt leider nicht so ganz
---------------------------------------------------------------------------------------------------------------------------------------
EDIT:
teilweißer erfolg, aber nich ganz so wie gewollt. hat einer ne idee?
jetzt wird mir alles ausgelesen, was zwischen "VALUES " und ");" steht, problem is aber wenn ein text ");" beinhaltet, wirds nichts. deshalb wollt ich auch den ganzen teil zwischen "VALUE" und "UNLOCK TABLES;" ! jemand ne idee wie ich das anstellen koennte?
ich hab da nen kleines problem. und zwar möchte ich eine sql-datei auslesen die dann mit anderer tabellenstruktur wieder in eine datenbank soll.
ich weiß wieviele und welche tabellen exportiert werden...
die sql sieht etwa so aus: (beschränkt auf die wichtigen zeilen

Code:
INSERT INTO `tab1` VALUES (text1),(text2);
UNLOCK TABLES;
INSERT INTO `tab2` VALUES (text3),(text4);
UNLOCK TABLES;
INSERT INTO `tab3` VALUES (text5),(text6),(text7);
UNLOCK TABLES;
Ich möchte nun jeweils den teil zwischen "VALUES" und "UNLOCK TABLES;" auslesen.
also :
feld[0]='(text1),(text2);';
feld[1]='(text3),(text4);';
feld[2]='(text5),(text6),(text7);';
mein php-code: funzt leider nicht so ganz
PHP:
$datei="sql.sql"; // >> ÄNDERN!
$dateizeiger=fopen($datei,"r");
while(!feof($dateizeiger))
{
$sql_datei=$sql_datei.fgets($dateizeiger);
}
fclose($dateizeiger);
preg_match_all('#VALUES (.*)\nUNLOCK TABLES;#siU',$sql_datei, $ausgabe_temp, PREG_PATTERN_ORDER);
unset($feld);
for($i=0;$i<count($ausgabe_temp);$i++)
{
$feld[] = $ausgabe_temp[1][$i];
}
echo $feld[0];
echo $feld[1];
echo $feld[2];
---------------------------------------------------------------------------------------------------------------------------------------
EDIT:
teilweißer erfolg, aber nich ganz so wie gewollt. hat einer ne idee?
jetzt wird mir alles ausgelesen, was zwischen "VALUES " und ");" steht, problem is aber wenn ein text ");" beinhaltet, wirds nichts. deshalb wollt ich auch den ganzen teil zwischen "VALUE" und "UNLOCK TABLES;" ! jemand ne idee wie ich das anstellen koennte?
PHP:
$datei="sql.sql"; // >> ÄNDERN!
$dateizeiger=fopen($datei,"r");
while(!feof($dateizeiger))
{
$sql_datei=$sql_datei.fgets($dateizeiger);
}
fclose($dateizeiger);
preg_match_all('#VALUES ((.*));#siU',$sql_datei, $ausgabe_temp, PREG_PATTERN_ORDER);
unset($feld);
for($i=0;$i<count($ausgabe_temp);$i++)
{
$feld[] = $ausgabe_temp[1][$i];
}
echo $feld[0];
echo $feld[1];
echo $feld[2];
Zuletzt bearbeitet: