1 com.noccy.pdo.shell
Christopher Vagnetoft edited this page 2021-12-16 16:29:40 +01:00

PDO Shell Plugin

This is a plugin to work interactively with PDO.

Installation

Global installation (recommended, requires SPARK_PLUGINS environment):

  1. Extract the plug into your global plugin directory ($SPARK_PLUGINS)
  2. Go to your project directory and run spark plugin --enable com.noccy.pdo.shell

Local installation:

  1. Extract the directory into .spark/plugins, like a savage.

Configuration

To define resorces using PHP, add this to the appropriate preloaded file:

create_resource($name, $type, $uri);

You can also use the config file .spark/resources.json:

{
  "resources": {}
}

Resources are defined with the name as the key, and the full connection URI as the value. The URI should contain the resource type as well as the resource URI separated by a plus sign, in this case pdo+mysql, pdo+sqlite etc.

...
  "db": "pdo+mysql://user:pass@host:port/dbname"
...

You can also create a temporary in-memory SQLite database by using pdo+sqlite:

Usage

The simplest use is invoking the shell directly:

$ spark pdo:shell
PDO[db]>

You are presented with a prompt containing the string "PDO", follwed by the currently selected resource in brackets. Commands start with a period (.) and you can get a list of the valid commands with .help.

To run a query, you can either run it directly:

PDO[db]> SELECT id FROM users WHERE username='bob'

Or let the shell do the escaping for you:

PDO[db]> .query "SELECT id FROM users WHERE username=?" bob

You can also read the commands from a file and have them executed as if they were entered into the shell:

$ spark pdo:shell -r sparkrc

Selecting the resource

This can be done from the command line:

$ spark pdo:shell --db otherdb

Or from within the shell:

PDO[db]> .select otherdb
PDO[otherdb]>