/pdo-query

Universal RDBMS Client / CSV Dumper

Primary LanguagePHP

PDO-QUERY(1)                    Shell Utilities                   PDO-QUERY(1)



NAME
       pdo-query - the universal RDBMS client / CSV dumper


SYNOPSIS
       pdo-query [-a..] [-c..] [-d..] [-e..] [-q/t..]
       pdo-query [-s..] [-u..] [-t..] [-d..] [-e..] [-q/t..]
       pdo-query -h
       pdo-query -s sqlite:/tmp/meta.sq3 -q 'SELECT * FROM my_data'


DESCRIPTION
       The  pdo-query  utility eases querying common RDBMS systems and dumping
       the results as CSV data.  Beside the possibility to specifiy  CSV  for‐
       matting  options, the tool provides a flexible way to pre-configure and
       alias connections and credentials. This allows users and script authors
       to  refer  to  any ressource by name, whilst e.g. the administrator can
       create and update the configuration at any time.


OPTIONS
       -a alias, --alias ...
              Use the configured alias, as described in the CONFIGURATION sec‐
              tion.  This  allows  to  store  various connection credentials -
              without the need to remember each detail.

       -c configuration, --configuration ..., --config ...
              Register the given configuration file to be used in addition  to
              the default files, as described in the CONFIGURATION section.

       -d delimiter, --delimiter ..., --delim ...
              Use  the  given delimiter to separate the fields in the CSV out‐
              put, if any. This option defaults to a comma.

       -e enclosure, --enclosure ..., --enc ...
              Use the given enclosure to quote the fields in the  CSV  output,
              if any. This option defaults to a double quote.

       -f fields, --fields ...
              Comma-separated  list  of field names, only these fields will be
              included in the output.

       -h, --help, -?
              Print a help message and exit.

       -n, --no-header, --omit-header
              Omit the first line (containing the column names) from  the  CSV
              output, if any.

       -p password, --password ..., --pw ...
              Use  the given password for authentication when initializing the
              PDO connection.

       -q query, --query ...
              Send the given query to obtain the data to dump as CSV, if any.

       -s source, --source ..., --dsn ...
              Use the given source as data source name (DSN) to initialize the
              PDO  connection.  Please  refer  to  the  PDO  documentation  at
              http://www.php.net/manual/en/pdo.construct.php    for    further
              information.

       -t table, --table ...
              Dump  the  entire  data  of  the given table instead of using an
              explicit query. This is a shortcut for using --query to  'SELECT
              * FROM table'.

       -u username, --username ..., --user ...
              Use  the given username for authentication when initializing the
              PDO connection.


CONFIGURATION
       The --dsn, --user and --pw  options  can  be  stored  in  configuration
       files, for later reference via --alias.  The order in which these files
       are searched for and processed is as follows:

            1. System-wide configuration: /etc/pdo-query.ini
            2. User-specific configuration: $HOME/.pdo-query.ini
            3. Requested configuration (via e.g. --config)

       The syntax of the configuration  files  is  a  pretty  self-explanatory
       INI-file dialect. The following examples demonstrate the basic use:

            ; [alias]
            ; dsn = driver:driver-specific-options
            ; user = username
            ; pw = password

            [sqlite-example]
            dsn = "sqlite:/tmp/my-database.sq3"

            [postgresql-example]
            dsn = "pgsql:host=postgres.example.com;dbname=example"
            user = "john-doe"
            pw = "c0nf1d3nt1@l"

            [mysql-example]
            dsn = "mysql:host=mysql.example.com"
            user = "jane-doe"
            pw = "s3cr3t"

       Note  that  directives  in  configuration files can override each other
       when using the same alias. Also, the --dsn, --user   and  --pw  options
       override  the  configuration when passed to pdo-query AFTER the --alias
       directive (and vice-versa).


EXAMPLES
       The following examples assume that there  is  a  database  alias  named
       example  (e.g.  an SQLite database as demonstrated in the previous sec‐
       tion) configured and running:

            pdo-query -a example <<<'CREATE TABLE data (key TEXT, value TEXT)'
            pdo-query -a example -q 'INSERT INTO data VALUES ("foo", "bar")'

            pdo-query -a example -q 'SELECT * FROM data'
            key,value
            foo,bar

            pdo-query -s sqlite:/tmp/my-database.sq3 -t data
            key,value
            foo,bar

            pdo-query -a example -t data -n
            foo,bar

            pdo-query -d \; -a example -t data
            key;value
            foo;bar

       Note that in case there's no data at all the column names aren't  writ‐
       ten either:

            pdo-query -a example -q 'DELETE FROM data'
            pdo-query -a example -t data


SUPPORTED SYSTEMS
       See http://www.php.net/manual/en/pdo.drivers.php


BUGS
       Probably infinite.


SEE ALSO
       sqlite(1), psql(1), mysql(1), php(1)


COPYING
       Mathias J. Hennig wrote this script and its manual page. As long as you
       retain this notice you can do whatever you want with this stuff.  If we
       meet  some  day, and you think this stuff is worth it, you can buy me a
       beer in return.




Matze's Toolbox                  February 2013                    PDO-QUERY(1)