|
| Udføre SQL i en fil Fra : Carsten Madsen |
Dato : 07-09-01 17:15 |
|
Jeg vil gerne udføre noget SQL på mange linier der ligger i en fil. Hvordan
kan jeg sende det til MySQL - har ikke adgang til phpMyAdmin som har
genereret filen?
/Carsten
| |
Søren Gørtz Olesen (07-09-2001)
| Kommentar Fra : Søren Gørtz Olesen |
Dato : 07-09-01 17:15 |
|
"Carsten Madsen" <carstensm@hotmail.com> skrev i en meddelelse
news:3b98f146$0$3241$ba624c82@nntp01.dk.telia.net...
> Jeg vil gerne udføre noget SQL på mange linier der ligger i en
fil. Hvordan
> kan jeg sende det til MySQL - har ikke adgang til phpMyAdmin
som har
> genereret filen?
>
> /Carsten
>
>
Download en MySQL klient og eksikver det fra din egen pc.
| |
Carsten Madsen (07-09-2001)
| Kommentar Fra : Carsten Madsen |
Dato : 07-09-01 17:33 |
|
> Download en MySQL klient og eksikver det fra din egen pc.
Jeg skal tilgå MySQL serveren via localhost, så scriptet/SQL'en skal vel
udføres fra websitet?!?
Carsten
| |
Niels Andersen (07-09-2001)
| Kommentar Fra : Niels Andersen |
Dato : 07-09-01 17:42 |
|
"Carsten Madsen" <carstensm@hotmail.com> wrote in message
news:3b98f576$0$3246$ba624c82@nntp01.dk.telia.net...
> Jeg skal tilgå MySQL serveren via localhost, så scriptet/SQL'en skal vel
> udføres fra websitet?!?
Hvis sitet er på samme maskine som databasen, så ja.
Med PHP:
<?
$sql = file('dinfil.sql');
foreach($sql AS $line) {
mysql_query($line);
}
?>
| |
Anders Johannsen (07-09-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 07-09-01 19:14 |
|
In article <IN6m7.7681$sk1.215368@news010.worldonline.dk>, "Niels
Andersen" <niels-usenet@myplace.dk> wrote:
> Hvis sitet er på samme maskine som databasen, så ja.
>
> Med PHP:
>
> <?
> $sql = file('dinfil.sql');
> foreach($sql AS $line) {
> mysql_query($line);
> }
> ?>
Det er nu ikke nogen særligt god løsning, idet du antager at der er en
SQL-sætning pr. linje, hvilket ofte er fejlagtigt.
/A
| |
Niels Andersen (07-09-2001)
| Kommentar Fra : Niels Andersen |
Dato : 07-09-01 21:12 |
|
"Anders Johannsen" <anders@ignition.dk> wrote in message
news:pan.2001.09.07.20.13.53.42.9171@ignition.dk...
> In article <IN6m7.7681$sk1.215368@news010.worldonline.dk>, "Niels
> Andersen" <niels-usenet@myplace.dk> wrote:
>
> > Hvis sitet er på samme maskine som databasen, så ja.
> >
> > Med PHP:
> >
> > <?
> > $sql = file('dinfil.sql');
> > foreach($sql AS $line) {
> > mysql_query($line);
> > }
> > ?>
>
> Det er nu ikke nogen særligt god løsning, idet du antager at der er en
> SQL-sætning pr. linje, hvilket ofte er fejlagtigt.
Arh ja, det har du da ret i. :)
Men det var nu mest princippet i det jeg ville vise. Hent det ind i en
variabel, og fyr det afsted.
Mon ikke denne virker uden problemer:
$sql = join("\n", file('dinfil.sql'));
mysql_query($sql);
--
Mvh.
Niels Andersen
| |
Anders Johannsen (07-09-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 07-09-01 22:30 |
|
In article <bS9m7.7722$sk1.222405@news010.worldonline.dk>, "Niels
Andersen" <niels-usenet@myplace.dk> wrote:
> Arh ja, det har du da ret i. :)
> Men det var nu mest princippet i det jeg ville vise. Hent det ind i en
> variabel, og fyr det afsted.
>
> Mon ikke denne virker uden problemer: $sql = join("\n",
> file('dinfil.sql')); mysql_query($sql);
Ikke for at være pedantisk, men jeg tror at mysql_query() forventer netop
et SQL statement af gangen
Dvs. noget i retning af (utestet):
<?php
$filename = "test.sql";
foreach (explode(";", fread(fopen($filename, r), filesize($filename))) as $line)
mysql_query($line);
?>
En mere generisk løsning ville tage højde for kommentarer mv.
/A
| |
Nezar Nielsen (08-09-2001)
| Kommentar Fra : Nezar Nielsen |
Dato : 08-09-01 03:52 |
|
"Anders Johannsen" <anders@ignition.dk> wrote in message
news:pan.2001.09.07.23.29.39.933.9171@ignition.dk...
> Dvs. noget i retning af (utestet):
>
> <?php
> $filename = "test.sql";
> foreach (explode(";", fread(fopen($filename, r), filesize($filename))) as
$line)
> mysql_query($line);
> ?>
ja, jeg ved godt jeg er dybt pedantisk nu, men:
insert into blab(blib,blub) values ('blaah; sagde han', 'blung');
:)
--
Mvh. Nezar Nielsen
http://fez.dk/
| |
Andreas Frøsting (07-09-2001)
| Kommentar Fra : Andreas Frøsting |
Dato : 07-09-01 18:13 |
|
>Jeg skal tilgå MySQL serveren via localhost, så scriptet/SQL'en skal vel
>udføres fra websitet?!?
Med mindre du har mulighed for at telnette/SSH'e til boxen.
Så er det bare at køre:
mysql -ubrugernavn -ppassword databasenavn < sqldump.sql
--
Andreas Frøsting
http://phpwizard.dk
glaf glaf glaf!
| |
Niels Andersen (07-09-2001)
| Kommentar Fra : Niels Andersen |
Dato : 07-09-01 18:28 |
|
"Andreas Frøsting" <smoelf@phpwizard.dk> wrote in message
news:avvhptgggffp3sulf676octn674kohllvl@4ax.com...
> Med mindre du har mulighed for at telnette/SSH'e til boxen.
> Så er det bare at køre:
Du mener vel "Hvis du har..." :)
--
Mvh.
Niels Andersen
| |
Christian Joergensen (09-09-2001)
| Kommentar Fra : Christian Joergensen |
Dato : 09-09-01 12:02 |
|
Andreas Frøsting <smoelf@phpwizard.dk> wrote:
>>Jeg skal tilgå MySQL serveren via localhost, så scriptet/SQL'en skal vel
>>udføres fra websitet?!?
> Med mindre du har mulighed for at telnette/SSH'e til boxen.
> Så er det bare at køre:
> mysql -ubrugernavn -ppassword databasenavn < sqldump.sql
Eller smide en -h parameter på og køre det fra din egen box:
mysql -ubrugernavn -ppassword -hhostname databasenavn < sqldump.sql
--
Christian Jørgensen / Recursivity. Call back if it happens again.
http://www.razor.dk /
| |
Niels Andersen (09-09-2001)
| Kommentar Fra : Niels Andersen |
Dato : 09-09-01 12:05 |
|
"Christian Joergensen" <mail@phpguru.dk> wrote in message
news:2152395.44XZpnrlXX@flaf...
> > Med mindre du har mulighed for at telnette/SSH'e til boxen.
> > Så er det bare at køre:
> Eller smide en -h parameter på og køre det fra din egen box:
Kan ikke lade sig gøre i dette tilfælle.
"Jeg skal tilgå MySQL serveren via localhost"
--
Mvh.
Niels Andersen
| |
Christian Joergensen (09-09-2001)
| Kommentar Fra : Christian Joergensen |
Dato : 09-09-01 16:14 |
|
Niels Andersen <niels-usenet@myplace.dk> wrote:
>>> Med mindre du har mulighed for at telnette/SSH'e til boxen.
>>> Så er det bare at køre:
>> Eller smide en -h parameter på og køre det fra din egen box:
> "Jeg skal tilgå MySQL serveren via localhost"
*hovsa* ...
--
Christian Jørgensen / Server depressed, needs Prozak
http://www.razor.dk /
| |
Thor Dreier (07-09-2001)
| Kommentar Fra : Thor Dreier |
Dato : 07-09-01 17:58 |
|
"Carsten Madsen" <carstensm@hotmail.com> wrote in message
news:3b98f146$0$3241$ba624c82@nntp01.dk.telia.net...
> Jeg vil gerne udføre noget SQL på mange linier der ligger i en fil.
Hvordan
> kan jeg sende det til MySQL - har ikke adgang til phpMyAdmin som har
> genereret filen?
Hvis du har et webhotel med php, så kan du da bare smække phpMyAdmin ind
selv.
| |
Carsten Madsen (07-09-2001)
| Kommentar Fra : Carsten Madsen |
Dato : 07-09-01 19:06 |
|
> Hvis du har et webhotel med php, så kan du da bare smække phpMyAdmin ind
> selv.
Der kan man bare se - det gør jo det hele lidt nemmere.
Løsningen med :
<?
$sql = file('dinfil.sql');
foreach($sql AS $line) {
mysql_query($line);
}
?>
virkede også fint, men kræver en del redigering af .sql filen for at alle
SQL forespørgelser ligger på een linie og der ikke er ";" efter sætningerne.
Mange tak for svarene
Carsten
| |
Per Thomsen (09-09-2001)
| Kommentar Fra : Per Thomsen |
Dato : 09-09-01 16:59 |
|
"Carsten Madsen" <carstensm@hotmail.com> skrev i en meddelelse
news:3b98f146$0$3241$ba624c82@nntp01.dk.telia.net...
> Jeg vil gerne udføre noget SQL på mange linier der ligger i en fil.
Hvordan
> kan jeg sende det til MySQL - har ikke adgang til phpMyAdmin som har
> genereret filen?
Tag et kig på:
http://www.mysql.com/doc/L/O/LOAD_DATA.html
Det er måske noget i den stil du leder efter.
MVH Per Thomsen,
http://www.pert.dk/
| |
|
|