PostgreSQL importer

Door Arend a, 17 jaar geleden, 3.300x bekeken

Quote:
Executes an SQL script as a series of SQL statements. Returns
the result of the final step. This is a very complicated lexer
based on the REL7_4_STABLE src/bin/psql/mainloop.c lexer in
the PostgreSQL source code.


Dit script is de import functie uit phpPgAdmin naar een standalone class gehacked. Persoonlijk gebruik ik hem veel om bij het ontwikkelen de data structuur in losse .sql files te schrijven, en waar aanpassingen nodig zijn deze uit te voeren.

Het script is oorspronkelijk prodecurele code, en is vanwege clustering in een klasse gezet. De output is nog steeds met echo, en executeScript() zal een resultaten log outputten.

Deze was nodig omdat je bijvoorbeeld geen "DROP DATABASE" en "COPY ... FROM stdin" syntax onder php kan gebruiken.

Voorbeeld
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    require_once('pg_importer.php');
    
    $sDsn = "host=localhost port=5432 dbname=mydb user=myuser password=mypass";
    $oImportSQL = new ImportSQL($sDsn);
    
    // voer het script filename.sql uit
    $oImportSQL->executeScript("filename.sql");
    
    // voer een string uit:
    $oImportSQL->executeScript("
    DROP DATABASE mydb;
    CREATE DATABASE yourdb;
    "
, true);
?>


Copyright
Het leeuwendeel van het werk (het schrijven van de daadwerkelijke lexer) is door het team van phpPgAdmin gedaan. Zie website http://phppgadmin.sourceforge.net/

Gesponsorde koppelingen

PHP script bestanden

  1. postgresql-importer

 

Er zijn 2 reacties op 'Postgresql importer'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Andytjuh Bruggeman
andytjuh Bruggeman
17 jaar geleden
 
0 +1 -0 -1
Ok en wat doet dit script precies ?
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Op de aller eerste regel staat "Executes an SQL script as a series of SQL statements. Returns the result of the final step."

Vertaald: "Voert een SQL script uit als een serie van SQL commando's. Geeft het resultaat terug van het laatste commando".

En waarom je dit dan niet in 1 query doet? Omdat het niet altijd een goed idee is om enorme SQL scripts in 1 keer in je geheugen te laden en dan als 1 commando-setje te versturen naar de server. Denk aan geheugen, denk aan memory_limit.

edit: vuistregel: Als je niet snapt waar het voor is, wat het in grote lijnen doet, dan is het niet wat je zoekt.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. postgresql-importer

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.