On Fri, 21 Jan 2005, Dan Uscatu wrote:
> am un site, pe un server cu apache+php
> am acces pe ftp la craca cu sursele
>
> respectiva aplicatie acceseaza o baza de date al carei nume si
> user/parola se vad in surse.
>
> as avea nevoie sa obtin un dump al bazei, pentru ca proprietarul
> siteului e prea prost ca sa faca rost de el pe cai administrative.
>
> pleeze help cu ceva cod php care sa stie sa faca un dump si apoi sa-l
> extraga cumva de acolo

Atasat.

>
> p.s. facatorii de comentarii glumete sa se abtina, nu vreau sa sparg
> nici un server.
>
> "Live to Win, Dare to Fail" - James Hetfield
>
>
>
>
> ---
> Detalii despre listele noastre de mail: http://www.lug.ro/
>
>

---
Catalin(ux aka Dino) BOIE
catab at deuroconsult.ro
http://kernel.umbrella.ro/

-- Attached file included as plaintext by Ecartis --
-- File: pgsqldump.php

<?
// Backup a database
// Autor: Catalin(ux aka Dino) BOIE
// 2004-11-01

$db_user = "user";
$db_pass = "pass";
$db_db = "db";
// aici alegi o metoda de conectare la server
$db_host = "host=localhost";
//$db_host = "tty=/tmp/.s.PGSQL.5432";

$conn = pg_connect("$db_host dbname=$db_db user=$db_user password=$db_pass");
if (!$conn) {
        echo "Error connecting!<br>\n";
        exit;
}

$sql = "SELECT tablename FROM pg_tables WHERE schemaname = 'public'";
$res = pg_query($conn, $sql);
if (!$res) {
        echo "Error 1 [" . pg_last_error($res) . "]!";
        exit;
}
while (($row = pg_fetch_array($res))) {
        echo "Dumping table " . $row['tablename'] . "...<br>\n";


        $file = "/tmp/out-" . $row['tablename'] . ".sql";
        unlink($file);
        $f = fopen($file, "w");
        if (!$f) {
                echo "error!";
                exit;
        }

        $sql = "SELECT * FROM " . $row['tablename'] . " LIMIT 1";
        $res2 = pg_query($conn, $sql);
        if (!$res2) {
                echo "Error 2 [" . pg_last_error($res2) . "]! sql=[$sql]<br>\n";
                exit;
        }

        while (($row2 = pg_fetch_array($res2))) {
                $str = "INSERT INTO " . $row['tablename'] . " VALUES (";
                $add = "";
                $num_fields = pg_num_fields($res2);
                for ($i = 0; $i < $num_fields; $i++) {
                        $str .= $add . "'" . $row2[$i] . "'";
                        $add = ", ";
                }
                $str .= ");\n";
                fwrite($f, $str);
        }
        pg_free_result($res2);

        fclose($f);

}
pg_free_result($res);
?>


--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui